Berechnen von Zeiten
KlausWerther
Gesendet: 19.08.20 12:51
Betreff: RE: Berechnen von Zeiten


Member

Beiträge: 38
25
Ort: Isernhagen (bei Hannover)
Hallo,

ich vermute ein Rundungsproblem durch das vorangegangene Aufsummieren, das durch die Formatierung versteckt wurde. Dabei gehe ich davon aus, dass der Datentyp von Flugzeit entweder Zahl (Double) oder Datum/Uhrzeit ist.

?Format(Int(6)*24+hour(6),"00") & ":" & Format(Minute(6),"00")
144:00
?Format(Int(5.9999999)*24+hour(5.9999999),"00") & ":" & Format(Minute(5.9999999),"00")
120:00


Aufgelöst und ohne Formatierung:

?Int(6), hour(6), minute(6)
6 0 0
?Int(5.9999999), hour(5.9999999), minute(5.9999999)
5 0 0


Die Int-Funktion schneidet die Nachkommastellen einfach nur ab. Die Funktionen Hour() und Minute() verhalten sich wie erwartet. Und so kommt es dass einfach ein Tag unterschlagen wird.

Wenn aber eine Rundung dafür sorgt, dass der Fehler klein genug bleibt, ist der Fehler behoben. Auch die Funktionen Hour() und Minute() gehen damit richtig um. Hier habe ich mal auf die 5. Nachkommastelle gerundet.

?int(round(5.9999999, 5)), hour(round(5.9999999, 5)), Minute(round(5.9999999, 5))
6 0 0

Damit ist die Lösung:

?Format(Int(Round(5.9999999, 5))*24 + Hour(Round(5.9999999, 5)),"00") & ":" & Format(Minute(Round(5.9999999, 5)),"00")
144:00


--
Gruss, Klaus
Top of the page Bottom of the page