2012-02-01 158 views
0

所以我越来越接近使计时器按照我希望的方式工作,只有一个小问题。从秒表中返回十分之一秒百分之一秒

我发现下面的职位有关返回毫秒和纳秒: How do you convert Stopwatch ticks to nanoseconds, milliseconds and seconds?

但我想要做的需要时是只显示第二的100分之的十分之。

我有以下代码:

Private Sub TotalTimer_Tick(sender As System.Object, e As System.EventArgs) Handles TotalTimer.Tick 
    Dim elapsed As TimeSpan = Me.matchStopwatch.Elapsed 

    Me.MatchClockLbl.Text = String.Format("{0:0}:{1:00}:{2:00}.{3:###}", _ 
            Math.Floor(elapsed.TotalHours), _ 
            elapsed.Minutes, _ 
            elapsed.Seconds, _ 
            (elapsed.Milliseconds/100)) 

End Sub 

现在我试图代码的部分从{3:000}改变为{3:0}或{3:00},但所有这样做是变化格式,它实际上并没有删除千位数或千位数,他们仍然显示出来。

我进一步发现这对MSDN:

http://msdn.microsoft.com/en-us/library/ee372287.aspx#fSpecifier

但我不断收到S.F或S/F或东西是不正确的。

编辑:在代码的修改版本中添加,感谢Oded。现在的新问题是标签偶尔闪烁多余的数字。

回答

1

Milliseconds除以10得到100秒和100得到第10秒。

这是通过整数除法 - 基本上丢掉最低有效数字并假定Milliseconds返回至多3位数。

+0

一个小问题。在我这样做的时候,我注意到一秒钟之后,显示屏会弹出完整的3个零点。就像我会看到0.9然后再0.000。 – 2012-02-01 16:54:41

+0

@Paul - 将格式说明符从“{3:000}”更改为“{3}”或“{3:##}”。 – Oded 2012-02-01 16:56:14

+0

靠近。现在它弹出一个额外的数字。 – 2012-02-01 17:03:50