Registriert seit: 19. Feb 2003
Ort: Rossau
149 Beiträge
Delphi 10.2 Tokyo Enterprise
|
13. Mär 2003, 10:29
Hallo
Es gibt drei Funktionen, die mir auf Anhieb einfallen und für das Problem interessant sind:
date: liefert den aktuellen Tag (gerechnet ab 30.12.1899)
time: liefert die Zeit als Bruchteil eines Tages seit Mitternacht
now: liefert Tag und Zeit
beispiel
date: gibt auf meinem PC für heute 37693.0 zzurück
time: gibt für beispielsweise 9:00 den Wert 0.375 zurück
now: heutige Tag 9:00 liefert 37693.375
Die drei Funktionen liefern als Ergebnis TDateTime, was in Wirklichkeit Double ist, und zwar Tage vor dem Komma (bzw. Punkt) und Uhrzeit danach.
Wenn Du also
if now > StrToTime('09:15:00')
kodierst, vergleichst Du heutiges Datum/Uhrzeit mit 9:15 30.12.1899, und das ist ziemlich lange vorbei.
timetostr und strtotime finde ich in dem Zusammenhang auch nicht so gut, da daß davon abhängt, wie Delphi Deinen String interpretiert, und daß ist vom System abhängig.
Lösungvorschlag:
Zeit in double umrechen 9:15 entspricht ((9 * 60) + 15) / 1440
und mit time vergleichen
Viele Grüße
Lutz
|