Autor Beitrag
Thunder
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 145

WinXP
D6 Pers
BeitragVerfasst: Mi 31.03.04 18:34 
Um den Abstand von zwei Datumsangaben[meta]Zeitunterschied, Zeitabstand, Zeitdifferenz[/meta] in Tagen zu erhalten gibt es die Funktion DaysBetween aus DateUtils:
ausblenden 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':
ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function DaysBetween(const d1, d2:TDateTime):Integer; 
begin 
  Result:=Trunc(d1-d2); 
end// DaysBetween

Vielen Dank smiegel.

Das Forum-Mitlglied Udontknow hat noch eine veränderte Variante der smiegel'schen Funktion gepostet:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function DaysBetween(const d1, d2:TDateTime):Integer;  
begin  
  Result:=Trunc(d1)-Trunc(d2);  
end// DaysBetween

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 user profile iconChristian S.: Meta-Tags und - Wörter eingefügt


Zuletzt bearbeitet von Thunder am Mo 26.04.04 16:25, insgesamt 2-mal bearbeitet