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.