Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datumsdifferenz?! (https://www.delphipraxis.net/122853-datumsdifferenz.html)

phoenix_ft 23. Okt 2008 08:46


Datumsdifferenz?!
 
Hi,
auch auf die gefahr, dass es nicht die richtige Kategorie ist :wink:

ich bin schon eine weile am suchen und habe auch interessante ansätze gefunden, aber noch nichts was meine frage komplett beantwortet. :roll:
also ich habe delphi 2007
und habe zwei daten zb. 01.11.2008 und mein zweites datum 05.11.2008
ich weiß das ich die differenz zwischen den beiden daten mit StrToDate aussrechnen kann (oder gibt es eine andere möglichkeit?), aber ich möchte die einzelnen tage dazwischen angezeigt bekommen
1.11.2008 Anfang
- 2.11.2008 (Anfang + 1 = Ende?)
- 3.11.2008 ( +1 = Ende?)
- 4.11.2008 ( +1 = Ende?)
5.11.2008 ( = Ende !)
so und die drei tage dazwischen soll er mir in "extra" zeilen ausgebenzb. in einer combobox
geht das überhaupt?! :gruebel:
vielen dank für die hilfe

Tyrael Y. 23. Okt 2008 08:52

Re: Datumsdifferenz?!
 
Guck dir mal die Date und Time Funktionen an.

Für Tage gibt es zB.

Delphi-Quellcode:
function DaysBetween(const ANow, AThen: TDateTime): Integer;

Sherlock 23. Okt 2008 08:56

Re: Datumsdifferenz?!
 
Klar geht das. Musst Dir halt anschauen was ein Datum in Delphi eigentlich ist. Ein TDateTime (so heisst der Datentyp) ist eine Gleitkommazahl. Zitat aus der OH:
Der ganzzahlige Teil eines TDateTime-Wertes von Delphi entspricht der Anzahl der Tage seit dem 30.12.1899. Der fraktionale Teil des TDateTime-Wertes gibt die Tageszeit an.

Wenn Du nun also ein Datum hast, dann kommst Du zum nächsten Tag, in dem Du eine Eins dazu addierst. Und damit sollte schon alles klar sein.

Sherlock

DeddyH 23. Okt 2008 08:57

Re: Datumsdifferenz?!
 
Kannst es auch mal hiermit versuchen:
Delphi-Quellcode:
procedure ListDaysBetween(FirstDate, SecondDate: TDate; const sList: TStrings);
var CurrDate: TDate;
begin
  sList.BeginUpdate;
  try
    sList.Clear; //kann auch weggelassen werden, dann bleiben alte Einträge erhalten
    CurrDate := trunc(FirstDate);
    while CurrDate <= trunc(SecondDate) do
      begin
        sList.Add(DateToStr(CurrDate));
        CurrDate := CurrDate + 1; //unter Delphi 5 gibt es DateUtils noch nicht
      end;
  finally
    sList.EndUpdate;
  end;
end;

phoenix_ft 23. Okt 2008 10:12

Re: Datumsdifferenz?!
 
Danke Leute hat mir weitergeholfen :-D
steh halt manchmal im wald :coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.

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