时间跨度出错了

时间:2012-12-01 13:30:45

标签: vb.net time timer counter timespan

我想添加一个标签,打印经过的时间,就像正常时钟一样(当秒达到" 59"然后添加" 1" min到柜台)但是我的时间跨度添加秒数到达数字" 30" ...我做错了什么?

    Dim ElapsedTime As TimeSpan

 While log_button.Text = "Stop logger"
            ElapsedTime = Now().Subtract(StartTime)
            Label5.Text = String.Format("Minutos transcurridos: {0:00}:{1:00}", CInt(ElapsedTime.TotalMinutes) Mod 60, CInt(ElapsedTime.TotalSeconds) Mod 60)
            Application.DoEvents()
 End While

我得到了一个错误的增量:

enter image description here

enter image description here

00:01

...

0时28

0时29分

00:30

1时31分

1时32

等...

1 个答案:

答案 0 :(得分:2)

那是因为你正在舍入代表总分钟数的浮点数。当数字达到0.5时,它将四舍五入为1.

使用Floor方法截断数字:

CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60

您还可以使用Minutes属性来完成所有这些:

ElapsedTime.Minutes