0

Goodday,我使用下面的代码来启动一个计时器。Label2.Text = Difference1.TotalMinutes.ToString("N0") 但分钟总是 30 秒后。标签显示时间为 1 分钟,仅经过 30 秒,此后我总是 30 秒。我该如何校准这个?谢谢罗伯

4

1 回答 1

1

如果您查看TimeSpan.TotalMinutes属性的定义,它会声明:

获取以整分钟和小数分钟表示的当前 TimeSpan 结构的值。

因此,当您使用 ToString(" N0 ") 格式时,您会告诉它您不需要小数位,并且由于它是一种数字格式,它会将您的值向上取整。TimeSpan Custom Formats在这种情况下,您应该特别考虑使用%m自定义格式字符串。它应该看起来像这样:

 Label2.Text = Difference1.TotalMinutes.ToString("%m") 

我用来测试的代码。定时器间隔设置为 1000 并启用。

Public Class Form1
    Dim startTime As DateTime = DateTime.Now
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = (DateTime.Now - startTime).ToString("%m")
        Label2.Text = (DateTime.Now - startTime).TotalSeconds.ToString("N0")
    End Sub
End Class
于 2013-02-06T06:30:59.957 回答