Thema: Delphi Uhrzeiten vergleichen

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: Uhrzeiten vergleichen

  Alt 22. Jan 2009, 18:04
warum das nicht geht?
laß mal dein Programm, bei DeddyH's Code für einen Sekündchen hängen ... schwußt, die x:00:00 würde übersprungen und es passiert nix

und bei Now = StrToTime('16:00:00') wird, wenn das nicht "fast" auf die Millisekunde genau um 16°° verglichen wird, auch nie was passieren.


bei "meinem" Code kannst du den Timer auch locker im Minuten-Interval laufen lassen,
aber selbst ein 1-Sekundenintervall würde nicht wirklich viele Systemresourcen verbrauchen.
bei DeddyH's Code sollte der Timer schon sicherheitshalber mehrmals pro Sekunde diesen Vergleich ausführen und selbs da ist es nicht sicher, daß das Ereignis ausgelöst wird (wie gesagt, da braucht nur der Rechner mal kurz etwas zu sehr ausgelastet sein)





Da du ja 19°° auch noch haben möchtest, wird also auf kleiner 20°° geprüft.

theoretisch würde es auch ausreichen, wenn z.B. etwa so geprüft würde:
If (Stunde >= '06:00:00') and (Stunde < '19:05:00') aber ganze Zahlen sehen auch nett aus

Die Prüfung ob es Zeit zur Anzeige ist, erfollgt meißt kurz nach der vollen Stunde,
also könnte bei (Frac(Time) <= StrToTime('19:00:00')) das 19°°-Ereignis ausfallen

aber mir fällt grad was auf ... das Frac bei der Stundenprüfung macht kleine Probleme bei Tageswechsel, also wenn das Programm die Nacht durchläuft.
and (Trunc(Time * 24) > Trunc(LastTime * 24)) Then Begin hier werden jeweils die Stunden vor das Komma (siehe Delphi-Referenz durchsuchenTDateTime) verschoben und dann verglichen
und sobald sich die errechnete Zahl(Zeit) ändert, wird die Nachricht angezeigt.

(x = Anzahl der Tage seit 30.12.1899)
12:00 = x.5 ... x.5 * 24 = 12.0
6:00 = x.25 ... x.25 * 24 = 6.0
6:12 = x.2583 ... x.2583 * 24 = 6.2 ... Trunc(6.2) = 6
$2B or not $2B
  Mit Zitat antworten Zitat