Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Datum inkrementieren


ElTonno - Do 06.08.09 02:45
Titel: Datum inkrementieren
Hi Leute,

Ich hab folgendes Problem.
Ich möchte von 2 MaskEdit Feldern die Datumswerte inkrementieren, so das ich ein Startdatum eingebe und ein Enddatum.
Die Datumsangaben zwischen diesen beiden Werten sollen in eine ListBox geschrieben werden.
Vllt kann mir jemand auf die sprünge helfen warum es nich geht. THX
Beispiel:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
uses dateutils

var
  Form1: TForm1;
  Startdatum, Endedatum : TDateTime;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Startdatum:= StrToDate(Dstart.Text);
  Endedatum := StrToDate(Dende.Text);
  while Start > Ende do begin
    ListBox1.Items.Add(DateToStr(Startdatum));
    IncDay(Startdatum);
  end;
end;
end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Andreas Schilling - Do 06.08.09 07:01

Ich weis zwar nicht wo du "Start" und "Ende" herholst (soll sicher Startdatum und Enddatum sein) und was nun eigentlich nicht geht, aber ich gehe davon aus das "Start" kleiner als "Ende" ist. Also wäre es richtig

Delphi-Quelltext
1:
  while Startdatum < Endedatum                    


NetSpider - Do 06.08.09 11:01

Hier eine Loesung ganz ohne DateUtils:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var
  StartDate, EndDate: Cardinal;

procedure ShowDates;
begin
  StartDate := Trunc(StrToDate(MaskEdit1.Text)) (*+1*);
  EndDate := Trunc(StrToDate(MaskEdit2.Text)) (*-1*);
  while StartDate <= EndDate do begin
    ListBox1.Items.Add(DateToStr(StartDate));
    Inc(StartDate);
  end;
end;


Trunc schneidet den Komma-Wert des Datums ab (sollte einer vorhanden sein) und schreibt den Wert nach StartDate und EndDate. Dann wird die while Schleife durchlaufen. Hier werden sowohl Anfangs- als auch End-Datum mit ausgegeben. (* Kommentar entfernen um Start- und End-Datum nicht mit auszugeben *)

Lg,

Alex


ElTonno - Fr 07.08.09 18:19

voll cool. fettes thx für die schnelle hilfe von dir. bin noch anfänger, also nochmals vielen dank für die hilfestellung.