Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler beim Zeitvergleichen (https://www.delphipraxis.net/117400-fehler-beim-zeitvergleichen.html)

SaFu 17. Jul 2008 14:46


Fehler beim Zeitvergleichen
 
Hi

Nachdem mein Programm jetzt läuft, wollte ich es mal testen da ist mir doch aufgefallen, das der Server auf dem ich es gelegt und getestet habe eine Engliche Systemzeit hat.

Ich vergleiche Aktuelleuhrzeit mit Eingegebeneruhrzeit

Delphi-Quellcode:
sUhrzeit:= TimeToStr(DateTimePicker1.Time); // Eingestellte Zeit

procedure TForm1.Timer2Timer(Sender: TObject);
begin
 Aktuell:= (FormatDateTime('hh:mm:ss', now)); // Systemzeit
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
  if Aktuell = sUhrzeit then
  begin
   Button7.Click; // dateien älter als löschen
  end;
end;
Nur leider ist die Aktuellezeit auf dem Srever englich, auf meinem deutschen System funzt es sehr gut wo kann ich da jetzt mal nachschauen??

Oder was gibt es für Lösungen

mkinzler 17. Jul 2008 14:52

Re: Fehler beim Zeit vergleichen
 
Vergleiceh nicht die Strings sondern die DateTime-Werte

RavenIV 17. Jul 2008 14:56

Re: Fehler beim Zeit vergleichen
 
Zitat:

Zitat von mkinzler
Vergleiceh nicht die Strings sondern die DateTime-Werte

Und denk dran, dass es Real-Werte sind.
Die solle man nicht mit "=" vergleichen, sondern immer den Umweg über "delta" gehen.

Such hier im Forum nach "Real vergleichen" oder "Float vergleichen"

littleDave 17. Jul 2008 15:19

Re: Fehler beim Zeitvergleichen
 
Zitat:

Zitat von fuknersascha
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
 Aktuell:= (FormatDateTime('hh:mm:ss', now)); // Systemzeit
end;

Deine Format-Ausgabe ergibt "Stunde : Monat : Sekunde". "m" ist der Bezeichner für Month, für Minute gibt es "n" ->
'hh:nn:ss' wird die Zeitausgaber erstmal richtig ausgeben.

marabu 17. Jul 2008 15:43

Re: Fehler beim Zeitvergleichen
 
Hallo,

Zitat:

Zitat von littleDave
... 'hh:nn:ss' wird die Zeitausgaber erstmal richtig ausgeben.

Borland wusste um die Doppeldeutigkeit von mm bei kombinierten Datum- und Zeit-Werten und hat die Funktion so gebaut, dass trotzdem das erwartete Ergebnis produziert wird.

Grüße vom marabu

SaFu 18. Jul 2008 08:40

Re: Fehler beim Zeit vergleichen
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von mkinzler
Vergleiceh nicht die Strings sondern die DateTime-Werte

Und denk dran, dass es Real-Werte sind.
Die solle man nicht mit "=" vergleichen, sondern immer den Umweg über "delta" gehen.

Such hier im Forum nach "Real vergleichen" oder "Float vergleichen"

Also ich muss den Wert noch in eine Ini schreiben das heist es wäre besser wenn ich Float nehme oder leige ich da falsch

mkinzler 18. Jul 2008 08:42

Re: Fehler beim Zeitvergleichen
 
Ja ich würde die Werte im TDateTime-Format (Double) ablegen. Diese sind landesunabhängig

SaFu 18. Jul 2008 08:44

Re: Fehler beim Zeitvergleichen
 
jetzt nochmal ne blöde Frage wie mache ich das hier mit der Aktuellen zeit

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
Aktuell:= (FormatDateTime('hh:mm:ss', now)); // Systemzeit
end;

mkinzler 18. Jul 2008 08:46

Re: Fehler beim Zeitvergleichen
 
Now ist im Datetime-Format

Sharky 18. Jul 2008 08:46

Re: Fehler beim Zeitvergleichen
 
Hai fuknersascha,

warum beharst Du denn darauf die Zeit als String zu hinterlegen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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