掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
デジタル時計の早送り (ID:143280)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こういう感じですかねえ Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick '現在の日付時刻をローカルから取得する Dim dtNow As DateTime = DateTime.Now Select Case Me.Timer1.Interval Case 10 '早送り(巻き戻し)?の場合の処理 Static flag1st As Boolean = True Static dtLast As DateTime Static intStep As Integer If flag1st Then '初回は早送り・巻き戻し・同じ時刻かをチェック flag1st = False dtLast = DateTime.Today.Date.AddHours(6) intStep = Math.Sign(DateTime.Compare(dtNow, dtLast)) * 3 '3分刻みで早送り(巻き戻し) End If Select Case intStep Case Is > 0 '早送りの場合 dtLast = dtLast.AddMinutes(intStep) If dtLast > dtNow Then '早送りし過ぎの場合 dtLast = dtNow Me.Timer1.Interval = 1000 End If Case Is < 0 '巻き戻しの場合 dtLast = dtLast.AddMinutes(intStep) If dtLast < dtNow Then '巻き戻し過ぎの場合 dtLast = dtNow Me.Timer1.Interval = 1000 End If Case Else '今の時刻と同じなのでタイマーを1000MSに間隔に変更する Me.Timer1.Interval = 1000 End Select Me.Label1.Text = Format(dtLast, "HH:mm:ss") Me.Label1.Refresh() Case 1000 '早送りが終わった一秒刻みの処理 '取得した時刻をLabel.TEXTにセットする Me.Label1.Text = Format(dtNow, "HH:mm:ss") End Select End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Label1.Text = Format(DateTime.Today.Date.AddHours(6), "HH:mm:ss") '当日6時を初期値として表示 Timer1.Interval = 10 End Sub Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown 'formが最初に表示された時からスタートする Static flag1st As Boolean = True If flag1st Then flag1st = False Me.Timer1.Start() End If End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.