![]() |
Frage zum Zeitstempel mit now
Ich hab mir eine Schleife gebastelt, die immer zu einer bestimmten Uhrzeit auslöst, hier z.B. alle 60 sek.
Delphi-Quellcode:
Was passiert denn jetzt, wenn der nächste Tag neu anfängt? Wie hab ich mir das denn vorzustellen mit now? Ist das so, dass der um 0Uhr anfängt einen Zähler laufen zu lassen, der dann wenn es wieder 0Uhr wird von vorne anfängt? Dann würde die Schleife über Nacht nicht funktionieren, weil die Variable "jetzt" irgendwann größer wird als "now" je werden kann. Oder ist das mit dem Datum gekoppelt, dass das auch über Nacht klappt?
jetzt, aktuell : real;
i : integer; aktuell:=now; for i:=1 to 1000 do begin jetzt := aktuell + i*60/24/3600; if now >= jetzt then //Befehl end; Vielen Dank |
AW: Frage zum Zeitstempel mit now
Im Zeitstempel steckt neben der Uhrzeit auch das Datum.
|
AW: Frage zum Zeitstempel mit now
Zitat:
|
AW: Frage zum Zeitstempel mit now
Zitat:
die frage ist aber warum du keinen TTImer nimmst |
AW: Frage zum Zeitstempel mit now
die Variante mit dem TTimer hatte ich schon. Die Sache ist die, dass ich zwei Programme habe, die zeitlich Parallel laufen. Als ich das mit TTimer gelöst hatte, wurden die Timer über einen langen Zeitraum (24h) asynchron. Da gab es irgendwelche Verzugszeiten bei dem einen Programm, so dass die Timer nicht immer genau nach z.B. 60sek auslösten (keine Ahnung warum). Also wollte ich beide Programme an die Rechnerzeit koppeln, so wie oben beschrieben. (Die Sache mit Messages unter den Programmen versenden ist mir zu kompliziert). Jetzt war nur meine Frage, ob das auch über Mitternacht hinaus klappt.
Wenn es bis morgen geklappt hat is ja alles super. Vielen Dank |
AW: Frage zum Zeitstempel mit now
ob das sinnvoll läuft wage ich ncoh zu bezweifeln, weil deine Schleife ja nach 1000 Durchläufen beendet wird und danach nicht mehr ausgeführt wird. Ob innerhalb der 1000 Durchläufe überhaupt das 60 Sekunden Intervall erreicht wurde glaube ich eher gar nicht, weil du darin nur
die variable jetzt neu setzt, das dauert ziemlich sicher weniger als eine tausendstel minute wie wäre so ein Konstruktion:
Delphi-Quellcode:
var letzte_minute,hh,mm,ss,zz:word;
begin decodetime(now, hh,mm,ss,zz); letzte_minute:=mm; while true do begin decodetime(now, hh,mm,ss,zz); if letzte_minute<>mm then begin letzte_minute:=mm; //dein Befehl end; Application.ProcessMessages; sleep(1000); end end; |
AW: Frage zum Zeitstempel mit now
Zitat:
|
AW: Frage zum Zeitstempel mit now
![]() |
AW: Frage zum Zeitstempel mit now
Zitat:
|
AW: Frage zum Zeitstempel mit now
Windows hat ein scheduling system, da kannst dich um bestimte Uhrzeiten aufrufen lassen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 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