ここでは、時間変数を 0 に初期化し、StopWatch
ミリ秒をカウントしDispatcherTimer
て UI を更新するために使用します
Imports System.Threading
Imports Windows.UI.Xaml
Dim dt As DispatcherTimer = New DispatcherTimer
Dim dd As Integer = 0
Dim mm As Integer = 0
Dim hh As Integer = 0
Dim ss As Integer = 0
Dim ms As Integer = 0
Dim stopwatch As System.Diagnostics.Stopwatch = New System.Diagnostics.Stopwatch
Private Sub ontimertick()
ms = stopwatch.ElapsedMilliseconds
ss = ms / 1000
ms = ms Mod 1000
mm = ss / 60
ss = ss Mod 60
hh = mm / 60
mm = mm Mod 60
dd = hh / 24
hh = hh Mod 24
MicroSeconds.Text = ms.ToString("00")
Seconds.Text = ss.ToString("00")
Minutes.Text = mm.ToString("00")
Hours.Text = hh.ToString("00")
End Sub
Private Sub StartButton_Click(sender As Object, e As RoutedEventArgs) Handles StartButton.Click
dt.Interval = New TimeSpan(0, 0, 0, 0, 100)
AddHandler dt.Tick, AddressOf ontimertick
stopwatch.Start()
dt.Start()
End Sub
問題は、すべての変数の最初のインスタンスが、予想される実際の時間の 1/2 の時間で増加することです。
例: seconds.text は 500 ミリ秒で 1 に更新され、次は 1000 ミリ秒後に更新されます。
同様に、Minutes.text は 30 秒後に 1 に更新され、その後は通常どおり 60 秒後にインクリメントされます。
時間と日と同じですが、それ以降は最初のインスタンスのみで、通常の間隔の後に増加します
では、論理エラーを見つけるのを手伝ってくれる人はいますか?
プロセスを逆にして時間をカウントダウンするにはどうすればよいですか?
私が実装できるアイデア/ロジックを手伝ってもらえますか?