Kein Wunder. FormatDate() beruht auf der Unix-Zeit und zählt ab dem 1.1.1970. Das ist/war der erste Tag der Zählung. Daher klappt der Trick mit der Nutzung von FormatDate() nur, wenn man auf die Tage verzichtet und so tut, als suchte man eine Zeit am 1.1.1970.
Die folgende Prozedur macht es aber für Dich. Es ist der Code, den ich schon mal gepostet habe, aber abgewandelt für die Ermittlung von Tagen. Wohlgemerkt, immer ausgehend von einer Float mit Stunden.
Code: Alles auswählen
; mit Tagen und auf Hundertstelsekunden genau
; ausgehend von einer Float-Variablen mit Stunden
Procedure.s MakeTimeString(tdec.f)
Protected time.l, dd.w, hh.w, ii.w, ss.w, hs.w, out.s
time = Round(tdec * 360000, 1)
hs = time % 100 : time / 100
ss = time % 60 : time / 60
ii = time % 60 : time / 60
hh = time % 24 : time / 24
dd = Int(time)
out = RSet(Str(dd), 2, "0") + " Tge "
out + RSet(Str(hh), 2, "0") + " Std "
out + RSet(Str(ii), 2, "0") + " Min "
out + RSet(Str(ss), 2, "0") + "."
out + RSet(Str(hs), 2, "0") + " Sek"
ProcedureReturn out
EndProcedure
Debug MakeTimeString(32.51234)
P.S. Welche arme Sau soll den tagelang am Tropf hängen?
