Make A Timer (Backward)

This timer will count from the time you'll set it to zero.

Preparations

Add 1 Timer Control,1 Label and 1 Command Button to your form.
Set the Timer Interval property to 10.
Set the Timer Enabled property to False.
Press the button to Start/pause the timer.

Form Code

Dim TotalTenthSeconds, TotalSeconds, TenthSeconds, Seconds, _
Minutes, Hours As Integer

Private Sub Command1_Click()
' start or stop the timer

Timer1.Enabled = Not Timer1.Enabled
End Sub

Sub SetTime(h As Integer, m As Integer, s As Integer, t As Integer)
TotalTenthSeconds = t + s * 10 + m * 600 + h * 36000
' update the label

Label1 = h & ":" & m & ":" & s & ":" & t
End Sub

' set the timer
' Call SetTime(hours, minutes, seconds, tenthseconds)

Call SetTime(0, 1, 12, 4)
End Sub

Private Sub Timer1_Timer()
' we set the timer interval to 10, so every tenth second
' this sub will be executed
' if the timer is zeroed, exit sub

If TotalTenthSeconds <= 0 Then
Beep
Label1 = "0:0:0:0"
Timer1.Enabled = False
Exit Sub
End If
' decrease the total amount of Tenth Seconds.

TotalTenthSeconds = TotalTenthSeconds - 1

' if the TotalTenthSeconds is equal to 10, set it to 0.

TenthSeconds = TotalTenthSeconds Mod 10
' 10 tenth seconds are equal to 1 second
' int - will give us the integer part of the number:
' int(0.9) = 0

TotalSeconds = Int(TotalTenthSeconds / 10)
' if the Seconds is equal to 60, set it to 0

Seconds = TotalSeconds Mod 60
Minutes = Int(TotalSeconds / 60) Mod 60
Hours = Int(TotalSeconds / 3600)
' update the label

Label1 = Hours & ":" & Minutes & ":" & Seconds & ":" & TenthSeconds

End Sub

Go Back