Hallo,
ich muss im Moment ein wenig mit Daten und Zeiten rumrechnen... und ich würe gerne auch mit negativen Tagen und Monaten rechnen. Habe dazu diese Funktion geschrieben:
Delphi-Quellcode:
function EncodeDateTime0Based(AYear, AMonth, ADay: Integer): TDate;
begin
if AMonth < 0
then
begin
AYear := AYear + (AMonth
div MonthsPerYear);
AMonth := AMonth
mod MonthsPerYear;
end;
if ADay < 0
then
begin
Dec(AMonth);
while Abs(ADay) > DaysInAMonth(AYear,AMonth)
do
begin
Dec(AMonth);
Inc(ADay, DaysInAMonth(AYear, AMonth));
end;
ADay := DaysInAMonth(AYear, AMonth-1) + ADay;
end;
Result := EncodeDate(AYear+1,AMonth+1,ADay+1);
end;
z.B. wenns auf Februar hingeht (also z.B. eingabe werte 2005, 3, -5) wirft EncodeDate Exceptions, weil komische Werte generiert werden...
hat jemand bereits so eine Funktion oder kann meine korrigieren?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1