Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Jul 2009
und genau das mach die Funktion isLeakYear aus der SysUtils :angel:
function IsLeapYear(Year: Word): Boolean;
begin
Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;
wobei diese Funktion natürlich auch nur innerhalb des Zeitraumes des "aktuellen" gregorianischen Kalenders korrekt wäre ... also z.B. würde hier behauptet, daß des Jahr 100 nach Christi...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
16. Jul 2009
weil das nicht so einfach ist?
ein Erdenjahr ist nunmal nicht genau 365,25 Tage lang, (so war es noch im Julianischen Kalender)
sondern, laut Definition des gregorianischen Kalenders (welchen wir aktuell nutzen) 365,2425 Tage.
der Julianische Kalender ist mit 365,25 Tagen etwa 11 Minuten länger als das astromomische Jahr :angel:
alle 100 Jahre (mod 100) ist es kein Schaltjahr ... also...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
15. Jul 2009
Also wenn du Schlatjahre nicht berücksichtigen willst, dann nimm das Datum als TDateTime und prüfe deren Differenz (Ganzzahlanteil = Tage)