AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Uhrzeiten vergleichen

Ein Thema von Ykcim · begonnen am 22. Jan 2009 · letzter Beitrag vom 19. Okt 2014
 
Benutzerbild von himitsu
himitsu

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

Re: Uhrzeiten vergleichen

  Alt 22. Jan 2009, 17: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
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz