Vb.net 时间跨度出错

Vb.net 时间跨度出错,vb.net,time,timer,counter,timespan,Vb.net,Time,Timer,Counter,Timespan,我想添加一个标签,像普通时钟一样打印经过的时间(当秒数达到“59”时,然后在计数器上添加“1”分钟),但当秒数达到数字“30”时,我的时间跨度会添加分钟。。。我做错了什么 Dim ElapsedTime As TimeSpan While log_button.Text = "Stop logger" ElapsedTime = Now().Subtract(StartTime) Label5.Text = String.Format(

我想添加一个标签,像普通时钟一样打印经过的时间(当秒数达到“59”时,然后在计数器上添加“1”分钟),但当秒数达到数字“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
我得到了这样一个错误的增量:

00:01

00:28

00:29

00:30

01:31

01:32


等等。

这是因为您正在舍入表示总分钟数的浮点数。当数字达到
0.5
时,将四舍五入为1

使用
Floor
方法截断数字:

CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60
您还可以使用
Minutes
属性,该属性可以执行以下所有操作:

ElapsedTime.Minutes