Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#9

AW: CompareDate gibt immer 1 aus...

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

Aber vielleicht noch paar Hinweise und Fragen:
Delphi-Quellcode:
function TForm1.Tagedazwischen(vor, nach:TDate):Integer;
begin
 if compareDate(vor,nach) >= 0 then Result:= daysbetween(vor,nach)
 Else if compareDate(vor,nach) < 0 then Result := -1;
end;
Wenn compareDate(vor,nach) >= 0 größer, gleich Null sind, warum fragst du dann später nochmal mit compareDate(vor,nach) < 0 ob es kleiner Null ist?

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.
  Mit Zitat antworten Zitat