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 Time Vergleich Problem (https://www.delphipraxis.net/138273-time-vergleich-problem.html)

aaaaaaaaaa_10 6. Aug 2009 12:14


Time Vergleich Problem
 
Delphi-Quellcode:
 if (StrToTime(WL.Strings[1]) - StrToTime(Time)) = StrToTime('00:00:05') then
                  ShowMessage('gleich') else ShowMessage('verschieden');
Ich habe mir mal
Delphi-Quellcode:
StrToTime(WL.Strings[1]) - StrToTime(Time))
ausgeben lassen und da kam auch 00:00:05 raus, warum aber bekomme ich immer die Message 'verschieden'?

sirius 6. Aug 2009 12:19

Re: Time Vergleich Problem
 
Benutze beim Vergleich von Gleitkommazahlen "samevalue"!

patti 6. Aug 2009 12:20

Re: Time Vergleich Problem
 
Zitat:

Zitat von aaaaaaaaaa_10
StrToTime(Time)

Was ist denn in deinem Fall "Time"? Es gibt eine Funktion aus der Unit "SysUtils" mit dem Namen Time, welche die aktuelle Zeit liefert (TDateTime). Die kannst du doch nicht mit StrToTime in eine "Zeit" umwandeln, ist doch schon eine :gruebel:
Oder hast du noch eine eigene Variable namens "Time"?

Patti

Edit: Time aus Sysutils ist keine Variable, sondern eine Funktion :oops:

aaaaaaaaaa_10 6. Aug 2009 12:24

Re: Time Vergleich Problem
 
Time ist eine eigene Stringvar

patti 6. Aug 2009 12:26

Re: Time Vergleich Problem
 
OK, dann gibt das zumindest Sinn. Ich würde trotzdem auf den Namen verzichten und einen eigenen, noch nicht vorhandenen wählen, damit es zu keinerlei Problemen kommen kann. Ist letztendlich deine Entscheidung, aber im Sinne eines guten, lesbaren Quellcodes wäre es sicherlich von Vorteil ;-)

Patti

aaaaaaaaaa_10 6. Aug 2009 12:28

Re: Time Vergleich Problem
 
ok,aber ändert nix an meinem problem

patti 6. Aug 2009 12:34

Re: Time Vergleich Problem
 
Zu deinem Problem hat dir sirius ja schon die Lösung geschrieben:

Zitat:

Zitat von sirius
Benutze beim Vergleich von Gleitkommazahlen "samevalue"!

Zu den Gründen dafür lässt sich einiges in der DP finden.

Patti

aaaaaaaaaa_10 6. Aug 2009 12:55

Re: Time Vergleich Problem
 
Delphi-Quellcode:
if SameValue(StrToTime(WL.Strings[1])-StrToTime(MyTime),StrToTime('00:00:05')) = true then
Da kommt aber auch 'verschieden' raus. Ich versteh es nicht

EDIT : Habs jetzt damit:
Delphi-Quellcode:
if SameTime(StrToTime(WL.Strings[1])-StrToTime(MyTime),StrToTime('00:02:00')) = true then
hinbekommen. Aber danke für den Hinweis, sonst wäre ich wohl nicht auf SameTime gestoßen :thumb:

hitzi 6. Aug 2009 14:02

Re: Time Vergleich Problem
 
Kleine Anmerkung: Was passiert aber wenn aus was für einen Grund auch immer das System kurz ausgelastet war und somit die Windowsnachrichten nicht abgearbeitet wurden. Da stockt der Timer für die Zeit und dann sind im schlimmsten Fall mehr als 5 Sekunden vergangen. Deshalb nutze ich bei Zeitvergleichen mit relativ kurzen Abständen immer ein ">=". Also im Pseudocode "warte bis die Zeitdifferenz 5 Sekunden oder mehr beträgt".

aaaaaaaaaa_10 7. Aug 2009 06:14

Re: Time Vergleich Problem
 
Ich probiere es gleich mal aus mit >=. Mal schauen, wie das so läuft. Meld mich denn

EDIT: An sich schreibt er jetzt wenigstens etwa alle z.B. 2 Minuten einen Wert in die Datenbank,aber die sind ja nun nicht genau 2 Minuten auseinander. Bsp :
07:21:35
07:23:40
07:25:40
07:27:45
usw.

Ist natürlich nicht so gut. Und nun?


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