我用一個DateTimePicker選擇一個日期時間值,看看我有多少時間,直到它是零:我在VB.NET計時器丟失一個第二
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
timeInSeconds = (DateTimePicker1.Value.Subtract(System.DateTime.Now)).ToString
'RichTextBox1.Text = RichTextBox1.Text + vbTab + timeInSeconds.ToString
timeInSeconds = timeInSeconds.Substring(0, timeInSeconds.LastIndexOf("."))
End Sub
以上RichTextBox的顯示,我鬆了第二在約各30秒時:
23:59:47.4060217
23:59:46.3939638
23:59:45.3799058
23:59:44.3648477
23:59:43.3517898
23:59:42.3377318
23:59:41.3236738
23:59:40.3096158
23:59:39.2955578
23:59:38.2814998
23:59:37.2674418
23:59:36.2533838
23:59:35.2393258
23:59:34.2242677
23:59:33.2112098
23:59:32.1981518
23:59:31.1830938
23:59:30.1690358
23:59:29.1549778
23:59:28.1409198
23:59:27.1268618
23:59:26.1128038
23:59:25.0997458
23:59:24.0856878
23:59:23.0716298
23:59:22.0575718
23:59:21.0435138
23:59:20.0284558
23:59:19.0143978
**23:59:18.0013398
23:59:16.9872818**
所以使用
timeInSeconds = timeInSeconds.Substring(0, timeInSeconds.LastIndexOf("."))
不言而喻從二十三時59分18秒到23時59分十六秒
這是爲什麼?我做錯了什麼? 是時候
(DateTimePicker1.Value.Subtract(System.DateTime.Now)).ToString
發生了我失去了什麼?
定時器設置爲每秒更改一次。
如何才能獲得正確的結果?
在此先感謝!
計時器沒有1秒的分辨率。你不能保證那種精確度。 –
如果你需要在計算中小數,每一步之間的差異幾乎是一樣的:1.013 ...秒,這將解釋從18.001的飛躍......到16.987 ... – Koen
嗯,23:59:18.0013398 - 23:59:16.9872818是第二個。如果您想更好地保證查看所有數字,請使計時器在小於一秒鐘內打勾。 –