Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datum ohne Zeit vergleichen (https://www.delphipraxis.net/39314-datum-ohne-zeit-vergleichen.html)

CalganX 31. Jan 2005 20:41


Datum ohne Zeit vergleichen
 
Hi,
ich möchte gerne zwei Daten (Plural von Datum :cyclops:) vergleichen, allerdings ohne die Zeit (also den Nachkommastellen).

Wie stellt man das am dümmsten (Ironie :zwinker:) an?

Chris

alcaeus 31. Jan 2005 20:44

Re: Datum ohne Zeit vergleichen
 
Hallo Chak,

sieh dir mal Delphi-Referenz durchsuchenTrunc an. Das sollte fuer deine Zwecke gerade dumm genug sein.

Greetz
alcaeus

CalganX 31. Jan 2005 20:45

Re: Datum ohne Zeit vergleichen
 
Hi,
die Funktion nutze ich bereits, allerdings um die Zeit ohne Datum zu vergleichen. :zwinker:
Ist genau das Gegenteil von dem was ich erreichen will, denn trunc schneidet ja alles vor dem Komma ab. ;)

Chris

Hansa 31. Jan 2005 20:46

Re: Datum ohne Zeit vergleichen
 
Delphi-Quellcode:
var D1,
    D2 : TDate;

begin
  D1 := Today;
  D2 := Today - 1;
  showmessage (BoolToStr (D1 > D2,true));
end;
Die Funktion ergibt in diesem Fall immer TRUE ! :mrgreen:

CalganX 31. Jan 2005 20:50

Re: Datum ohne Zeit vergleichen
 
Hi Hansa,
ich bin zwar schon etwas müde, aber irgendwie ist mir klar, dass dein Quelltext immer true liefern wird. :gruebel:
Es geht aber um folgendes: ich habe ein Datum. Und ich möchte nun wissen, ob dieses Datum ungleich heute ist. Sprich gestern oder älter. Das Problem bei einem einfachen <= ist einfach, dass ich einen DateTime-Wert habe und deswegen ich ebenfalls ein "gestern" bekomme, wenn dieses Datum nur eine Minute zurückliegt.
Deswegen will ich die Zeit abschneiden und nur das Datum betrachten. ;)

Chris

alcaeus 31. Jan 2005 20:53

Re: Datum ohne Zeit vergleichen
 
Hallo Chris,

Zitat:

Zitat von Chakotay1308
Ist genau das Gegenteil von dem was ich erreichen will, denn trunc schneidet ja alles vor dem Komma ab. ;)

entweder ich hab was falsch verstanden oder du hast das ;)
AFAIR schneidet Trunc alles nach dem Komma ab:
Code:
Trunc(34.567) = 34
Frac hingegen schneidet alles vor dem Komma ab:
Code:
Frac(34.567) = 0.567
Also benoetigst du Frac um Zeiten zu vergleichen, Trunc um Daten zu vergleichen.

Greetz
alcaeus

PS: Falls ich falsch liegen sollte, dann sagt es mir bitte, aber meine Erinnerung sagt mir das was ich grad geschrieben habe ;)

CalganX 31. Jan 2005 20:55

Re: Datum ohne Zeit vergleichen
 
Hi,
och nö... :cry: Schon wieder einen Fehler gemacht. :wall:

Du hast natürlich vollkommen Recht, Andreas. ;)

Danke für deine Hilfe,
Chris

Steve 1. Feb 2005 08:27

Re: Datum ohne Zeit vergleichen
 
Hi,

in der Unit DateUtils gibt's auch Routinen wie TimeOf, DateOf usw., die genau dafür da sind (ab D7 glaub ich)
(dahinter steckt freilich auch Trunc, Frac usw.)

Gruß
Stephan

shmia 1. Feb 2005 09:14

Re: Datum ohne Zeit vergleichen
 
Zitat:

Zitat von alcaeus
AFAIR schneidet Trunc alles nach dem Komma ab:
Code:
Trunc(34.567) = 34

Genaugenommen müsste man die ziemlich unbekannte Funktion
Delphi-Quellcode:
function Int(X: Extended): Extended;
benützen.
Denn so bleibt man im Bereich der Fliesskommazahlen und muss nicht in ein paar hundert Milliarden Jahren einen Integerüberlauf befürchten. :angel:

jim_raynor 1. Feb 2005 11:51

Re: Datum ohne Zeit vergleichen
 
Zitat:

Zitat von shmia
Zitat:

Zitat von alcaeus
AFAIR schneidet Trunc alles nach dem Komma ab:
Code:
Trunc(34.567) = 34

Genaugenommen müsste man die ziemlich unbekannte Funktion
Delphi-Quellcode:
function Int(X: Extended): Extended;
benützen.
Denn so bleibt man im Bereich der Fliesskommazahlen und muss nicht in ein paar hundert Milliarden Jahren einen Integerüberlauf befürchten. :angel:

Ist aber auch gefährlich, da man Fließkommazahlen nicht unbedingt auf GLeichheit vergleichen kann. (Wegen der Ungenauigkeit)


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