Ich hab garnicht verstanden, was du überhaupt willst und wo das Problem ist?
Die großen Zahlen sind natürlich das, was man auch in der Beschreibung zu TDateTime lesen kann. (Tage seit einem bestimmten Datum)
Ich glaub jetzt hab ich's verstanden.
Wie ist denn EndOfAMonth im D2007 deklariert?
Vielleicht ist da ja ein Bug drin. Und die Delphi-Updates hast du auch installiert? (nicht daß der vermeintliche Bug schon behoben wurde)
In aktuelleren Delphis geht das zumindestens:
Delphi-Quellcode:
ShowMessage(DateToStr(41640) + ' ' + DateToStr(41671) + sLineBreak +
DateToStr(EncodeDate(2014, 01, 01)) + ' ' + DateToStr(EndOfAMonth(2014, 01)));
Info für Andere, welche hier mitlesen:
Statt Trunc besser
DateOf verwenden.
Delphi-Quellcode:
function DaysOfMonth(ADate: TDate; CorrMonth: Integer): String;
...
CDate := IncMonth(ADate, CorrMonth);
dtA := StartOfTheMonth(CDate);
dtE := EndOfTheMonth(CDate);