Home > Enterprise >  Having number above 60 in "ss" format
Having number above 60 in "ss" format

Time:02-14

Global time As Date

Sub countdown()
time = Now()
time = DateAdd("s", 120, time)

Do Until time < Now()
DoEvents
oSh.TextFrame.TextRange = Format((time - Now()), "ss")
Loop
End Sub

The timer starts from 60 and ends at 00. Then the same repeats. Is it possible to start the timer from 120 directly? How can we go about it?

CodePudding user response:

Format will simply read the seconds from a date value, there is no way to "force" it to calculate the total seconds. However, it is rather easy to calculate it manually:

Dim delta as Date
delta = t - now
oSh.TextFrame.TextRange = Minute(d) * 60   Second(d)
' or, if you want to have always 3 digits, eg 030
oSh.TextFrame.TextRange = Format(Minute(d) * 60   Second(d), "000")

CodePudding user response:

Use DateDiff:

Global StopTime As Date

Sub countdown()

    StopTime = DateAdd("s", 120, Now)

    Do Until StopTime < Now
        DoEvents
        oSh.TextFrame.TextRange = DateDiff("s", Now, StopTime)
    Loop

End Sub
  • Related