Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen | VB-Versionen: VB6 | 28.06.07 |
Zeitdifferenz (Dauer) ermitteln Enfache Ermittlung der Dauer eines Prozesses, Programmteils o.ä | ||
Autor: Edmund Kopplin | Bewertung: | Views: 20.326 |
www.kkmandant.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Häufig möchte man ermitteln, welche Dauer ein Prozess, ein Programmteil o.ä. benötigt. Die nachfolgende einfache Funktion ermittelt die Dauer und gibt sie in gewohnter Form aus:
Private Function GetDauer(dAnfang As Date, dEnde As Date) As String ' Wir ermitteln die Zeitdifferenz in Sekunden und errechnen daraus ' die Zeitdifferenz-Angabe im gewohnten Ausgabeformat Dim lngMin As Long Dim lngStd As Long Dim lngSek As Long lngSek = DateDiff("s", dAnfang, dEnde) ' Stundenwert ermitteln lngMin = Int(lngSek / 60) lngStd = Int(lngMin / 60) ' die Ausgabewerte für Minuten und Sekunden errechnen lngMin = lngMin - (lngStd * 60) lngSek = lngSek - (lngMin * 60) - (lngStd * 3600) ' ins Format hh:nn:ss umwandeln GetDauer = Format$(lngStd, "00") & ":" & _ Format$(lngMin, "00") & ":" & Format$(lngSek, "00") End Function
Der Aufruf der Funktion könnte z.B. so erfolgen:
Private Sub DauerErmitteln() ' Die Dauer eines Prozesses, Programmteils o.ä. soll ' exakt gemessen werden ' Achtung: Anfangs und Endzeit müssen einen komletten ' Datumswert, also nicht nur die Zeit, enthalten. Dim dAnfang As Date Dim dEnde As Date Dim sAusgabe As String ' Beginn der Messung dAnfang = Now() ' Aufruf des Prozesses, dessen Dauer gemessen werden soll ... ' Ende der Messung dEnde = Now() ' Ausgabe der Dauer MsgBox "Dauer: " & GetDauer(dAnfang, dEnde) End Sub