0

我想添加一个标签,像普通时钟一样打印经过的时间(当秒数达到“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

ETC...

4

1 回答 1

2

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

使用Floor截断数字的方法:

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

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

ElapsedTime.Minutes
于 2012-12-01T13:38:59.007 回答