Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi den unterschied zweier Datum-Werte berechnen (https://www.delphipraxis.net/44665-den-unterschied-zweier-datum-werte-berechnen.html)

jonny 22. Apr 2005 14:48

Re: den unterschied zweier Datum-Werte berechnen
 
Welcher Unterschied besteht bei StrToDate und EncodeDate?

Sharky 22. Apr 2005 14:54

Re: den unterschied zweier Datum-Werte berechnen
 
Zitat:

Zitat von jonny
Welcher Unterschied besteht bei StrToDate und EncodeDate?

Dies Lesbarkeit und die Unabhängigkeit vom eingestellten Datumsformat ;-)
Delphi-Quellcode:
begin
  GebDatum := StrToDate(IntToStr(tag) + '.' + IntToStr(monat) + '.' + IntToStr(jahr1));

  GebDatum := EncodeDate (jahr1, monat, tag);
end;

shmia 22. Apr 2005 15:10

Re: den unterschied zweier Datum-Werte berechnen
 
Zitat:

Zitat von jonny
Ich möchte gerne zwei Datum-Werte mit einander vergleichen und den Unterschied zurückbekommen.

Beispiel ich gebe heutieges Datum ein 22.04.2005 und ein belibieges Datum in der Vergangenheit z.B. 28.02.2004 und zurück möchte ich gerne 23.01.0001 erhalten.

Ein Differenz zwischen zwei Datum-Werte kann nur in Tagen, Stunden, Minuten oder Sekunden angegeben werden !
Die Angabe von Monaten oder Jahren kann nur ein Schätzwert sein, da Monate & Jahre unterschiedliche viele Tage haben.
Man kann natürlich mit diesen Schätz-Werten arbeiten: 1 Jahr=365Tage, 1 Monat=30Tage.

Delphi-Quellcode:
procedure ZeitSpanneExpand(var zeit : Double; var jahre, monate:Integer);
begin
   jahre := 0;
   while zeit >= 365.0 do
   begin
      zeit := zeit -365.0;
      Inc(jahre);
   end;
   monate := 0;
   while zeit >= 30.0 do
   begin
      zeit := zeit -30.0;
      Inc(monate);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  d1, d2 : TDateTime;
  diff : Double;
   jahre, monate:Integer;
begin
   d1 := Now;
   d2 := StrToDateTime('13.7.1914');

   diff := d1-d2;  // Differenz in Tagen

   ZeitSpanneExpand(diff, jahre, monate);

   ShowMessageFmt('%d Jahre; %d Monate; %2.1f Tage', [jahre, monate, diff]);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 2 von 2     12   

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