Einzelnen Beitrag anzeigen

Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#11

AW: CompareDate gibt immer 1 aus...

  Alt 26. Mai 2015, 00:30
Zitat:
Warum?
Formatiere mal den Quelltext ordentlich und dann sieht du es bestimmt.
Wollte ich gerade auch drauf hinweisen.

......

Im Code compareDate(vor,nach) steht vor vor nach. In der Funktion Zeitraum ist in der Zeile wievieltePackung(Tagedazwischen(dt, vorTag)) der vorTag an zweiter Stelle. Ich weiß nicht welche Tage in dt stehen, aber ich gehe davon aus, dass es nachTage sind. Vielleicht solltest du für den Fall in der Funktion Tagedazwischen zuerst vor und nach sortieren, also prüfen ob vor auch wirklich das frühere Datum ist. Ansonsten prüfst du drauf ob das spätere Datum vor dem älteren Datum steht. Das Ergebnis wäre in dem Fall -1.
Danke Popov,

Ein Ergebnis war falsch und deshalb habe ich die Funktion und es konnte nur die Funktion sein, im OnKeyDown Ereignis eines TEdits getestet und eben entdeckt, dass egal, was für ein Datum ich eingebe, ob größer oder kleiner als das 2. Datum immer eine 1 ausgegeben wird, auch wenn die beiden Datums gleich sind.

Hier der einfache Test über ein Editfeld:
Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  t:TDate;
begin
 if key = VK_Return then
   begin
    Try
     if Edit1.Text = 'then
        t := Date
     else
        t:= strtodate(edit1.Text);
     Zeitraum(t);
    Except
     Zeitraum(now);
    end;
   end;
end;
  Mit Zitat antworten Zitat