Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Frage zum Zeitstempel mit now (https://www.delphipraxis.net/176747-frage-zum-zeitstempel-mit-now.html)

jupiter4065139 24. Sep 2013 11:22

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:
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;
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?

Vielen Dank

mkinzler 24. Sep 2013 11:26

AW: Frage zum Zeitstempel mit now
 
Im Zeitstempel steckt neben der Uhrzeit auch das Datum.

jupiter4065139 24. Sep 2013 11:36

AW: Frage zum Zeitstempel mit now
 
Zitat:

Zitat von mkinzler (Beitrag 1229733)
Im Zeitstempel steckt neben der Uhrzeit auch das Datum.

d.h. meine o.g. Schleife funktioniert auch über Nacht?

IBExpert 24. Sep 2013 11:49

AW: Frage zum Zeitstempel mit now
 
Zitat:

Zitat von jupiter4065139 (Beitrag 1229740)
Zitat:

Zitat von mkinzler (Beitrag 1229733)
Im Zeitstempel steckt neben der Uhrzeit auch das Datum.

d.h. meine o.g. Schleife funktioniert auch über Nacht?

wenn nicht gerade murmeltiertag ist, ja ;-)

die frage ist aber warum du keinen TTImer nimmst

jupiter4065139 24. Sep 2013 12:22

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

IBExpert 24. Sep 2013 13:00

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;

jupiter4065139 24. Sep 2013 13:22

AW: Frage zum Zeitstempel mit now
 
Zitat:

Zitat von IBExpert (Beitrag 1229751)
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.

Sorry ich hab oben ein Tippfehler. Die Schleife muss natürlich bei i:=1 beginnen. Was denkst Du jetzt, könnte das klappen? Ansonsten müsste ich das mal mit dem dekodieren der Zeit probieren, nach Deinem Vorschlag. So wie es bisher läuft funktioniert es, ich mach mir halt nur Gedanken, was passiert bei Tageswechsel.

DeddyH 24. Sep 2013 13:31

AW: Frage zum Zeitstempel mit now
 
TDateTime, da steht, wie sich der Wert zusammensetzt.

jupiter4065139 24. Sep 2013 13:41

AW: Frage zum Zeitstempel mit now
 
Zitat:

Zitat von DeddyH (Beitrag 1229755)
TDateTime, da steht, wie sich der Wert zusammensetzt.

Danke, so gesehen dürfte es ja keine Probleme geben.

MyRealName 24. Sep 2013 15:52

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 19:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz