TimeRun




Sub Pause(seconds as Single)
Dim initTime as Single
initTime = Timer
Do: Loop Until Timer >= initTime + seconds
End Sub

Sub Pause(seconds as Single)
Dim initTime as Single
initTime = Timer
Do
Loop Until Timer >= initTime + seconds Or _
(Timer < initTime And Timer > initTime + seconds - 86400)
End Sub

'If you don't need the pause to be really precise, and

'you're satisfied with an integer number of seconds, you can

'also use this simpler approach:


Sub Pause(seconds as Single)
Dim initTime as Date
initTime = Now
Do: Loop Until DateDiff("s", initTime, Now) >= seconds
End Sub


If this code is executed at 23:59:59
(or even earlier, depending on the value of the seconds
argument), the Do-Loop will never end, and the user will
have to kill the program from the Task Manager. The worst
facet of this problem is that the bug can manifest months
or even years 'after you've installed the program, which
would leave you clueless about its causes.
Here's the fix for the above routine:











( timerun.html )- by Paolo Puglisi - Modifica del 17/12/2023