![]() |
DateTime - 10 Sekunden
Hallo,
nachdem ich mich jetzt lange genug herumgeärgert habe, stelle ich meine Frage nun doch als neuen Thread ein: Und zwar möchte ich, das wenn der User z.B. 29.05.2004 15:00:00 angibt, das mein THEN-Ereignis des IF-Clause am 30.05.2004 um 14:59:50 ausgeführt wird. Ich will also von meinem/r TDATETIME 10 Sekunden abziehen. WIE?? :wall: thx, se0man |
Re: DateTime - 10 Sekunden
Du zählst den entsprechenden Wert für eine Sekunde Mal 10 ab. Eine Sekunde ist einfach 1/86400. Begründung: Ein Tag entspricht 1 als DateTime. Eine Minute hat 60 Sekunden, eine Stunde 60 Minuten und Tag 24 Stunden. Das gibt 60*60*24, also 86400. Das sind die Sekunden in einem Tag, also dürfte der Rest wohl von alleine kommen...
Greetz alcaeus |
Re: DateTime - 10 Sekunden
thxxx
Mein einziges Problem war nur, dass ich 1.1574074074074074074074074074074e-5 statt 1/86400 benutzte. Kam mir sehr komisch vor. Habe mal wieder zu wenig gedacht. Sorry. :oops: Naja, also der Code:
Code:
Ciao,
if (StrToDateTime(edtDate.Text+' '+edtTime.Text)+(1/86400) = Now)
then begin { Ereignis } end; -se0man |
Re: DateTime - 10 Sekunden
Also, verwende beim Vergleich mit Now nach Möglichkeit nicht =, da die Genauigkeit des DateTime-Wertes jene eines Timers überschreitet. Verwende stattdessen >=:
Delphi-Quellcode:
Sobald der Zeitpunkt überschritten ist, wird der Code durchgeführt. Du hast außerdem den falschen Wert addiert, du willst ja die 10 Sekunden abzählen... :mrgreen:
if (StrToDateTime(edtDate.Text+' '+edtTime.Text)-(1/8640) >= Now) then
begin //Dein Code end; Achja, ein kleiner Tipp: Sieh dir Mal DateTimePicker an (Paletter Win32). Greetz alcaeus |
Re: DateTime - 10 Sekunden
DateTimePicker verwende ich bereits. THX
Das war nämlich kein Copy&Paste Code, was auch den 10 -> 1 sowie den = -> <= Fehler erklärt. :mrgreen: Ansonsten nochmal thxx -se0man |
Re: DateTime - 10 Sekunden
Oder man verwendet die funktion IncSecond der Unit SysUtils :
Delphi-Quellcode:
[edit: Text vergessen :roll:]
if (IncSecond(StrToDateTime(edtDate.Text+' '+edtTime.Text),-10) >= Now) then
begin //Dein Code end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 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 by Thomas Breitkreuz