Um den Abstand von zwei Datumsangaben[meta]Zeitunterschied, Zeitabstand, Zeitdifferenz[/meta] in Tagen zu erhalten gibt es die Funktion DaysBetween aus DateUtils:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| uses DateUtils;
var Tage: Integer; Datum1, Datum2: TDate;
begin Tage := DaysBetween(Datum1, Datum2); end; |
Als Beispiel, wenn man den Abstand zu einem bestimmten Datum haben will, nimmt man einfach 'Now':
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| uses DateUtils;
var Tage: Integer;
begin Tage := DaysBetween(Now, StrToDate('20.04.2005')); end; :D |
Das Forum-Mitlied smiegel hat noch diese Funktion gepostet, für Leute die kein Delphi 6 oder höher haben:
Delphi-Quelltext
1: 2: 3: 4:
| function DaysBetween(const d1, d2:TDateTime):Integer; begin Result:=Trunc(d1-d2); end; |
Vielen Dank smiegel.
Das Forum-Mitlglied Udontknow hat noch eine veränderte Variante der smiegel'schen Funktion gepostet:
Delphi-Quelltext
1: 2: 3: 4:
| function DaysBetween(const d1, d2:TDateTime):Integer; begin Result:=Trunc(d1)-Trunc(d2); end; |
Hier werden die vergangenen Tage unabhängig von der Zeit gezählt. Während bei den anderen Funktion zwischen dem "1.1.2003, 8:00 Uhr" und dem "2.1.2003, 7:59 Uhr" null Tage liegen (es fehlt noch eine Minute) würde diese Funktion 1 Tag zurückgeben, da sie die Uhrzeit nicht mit einbezieht. Es wären z.B. auch zwischen "1.1.2003, 23:59 Uhr" und "2.1.2003, 0:01 Uhr" 1 Tag, also 24 Stunden, vergangen
Vielen Dank Udontknow.
Moderiert von Christian S.: Meta-Tags und - Wörter eingefügt