In vielen Projekten ist es notwendig, in irgendeiner Form Zeiten zu
ermitteln.
Vorallem Laufzeiten von Prozessen werden häufig benötigt.
Natürlich können Sie den VB eigenen Timer dafür benutzen, aber richtig glücklich
werden Sie damit nicht, denn ist Ihr System mit anderen Dingen beschäftigt,
kann eine Sekunde schnell mal 5 Sekunden lang sein.
Also warum nutzen Sie nicht, was eh schon da ist und dazu noch in Echtzeit.
Im System läuft ein Timer, der die vergangenen Sekunden seit Mitternacht zählt und
dessen aktueller Wert ständig ermittelt werden kann.
Wenn Sie also die Differenz einer Start- und einer Endzeit ermitteln wollen, so
könnte das im einfachsten Fall so aussehen.
Startzeit = Timer
' irgendwelche Prozesse
Endzeit = Timer
Differenzzeit = Endzeit - Startzeit
Das Ganze ist aber noch unsauber. Erstens sollten Sie natürlich Ihre Variablen
deklarieren. Maxwert des Timers ist 86400, also reicht eine Integer Variable nicht,
sonders es bedarf einer Long Variable, die bis zu 2.147.483.648 aufnehmen kann.
Dim Startzeit As Long, Endzeit As Long, Differenzzeit As Long
Da eine Long Variable eine Ganzzahl Variable ist, werden automatisch die Nachkommastellen
weggerundet.
Was wir in Differenzzeit erhalten, ist also die Differenz zwischen der Endzeit und der
Startzeit in Sekunden.
Für den Fall das diese in ein gebräuchliches Uhrzeitformat umgewandelt werden müssen,
gibt es hier noch eine Funktion.
'##################################################
Function umrechnung_timer_zu_uhrzeit(Timerzeit As Long) As String
stunden = Int(Timerzeit / 3600)
minuten = Int((Timerzeit / 60) - (stunden * 60))
sekunden = Int(Timerzeit - ((stunden * 3600) + (minuten * 60)))
If Len(stunden) = 1 Then stunden = "0" & stunden
If Len(minuten) = 1 Then minuten = "0" & minuten
If Len(sekunden) = 1 Then sekunden = "0" & sekunden
umrechnung_timer_zu_uhrzeit = stunden & ":" & minuten &
":" & sekunden
End Function
'##################################################
Funktionsaufruf
DiffUhrzeit = umrechnung_timer_zu_uhrzeit(Differenzzeit) |