Am Donnerstag, 10. März 2011 schrieb Pit Zyclade: > Am 10.03.2011 22:01, schrieb Matthias Müller: > > Am Sonntag, 6. März 2011 schrieb [email protected]: > >> Hallo ! > >> iJahr = 2011 > >> iRest = REST(iJahr;4) > >> zum Berechnen des Schaltjahres. > > > > Das ist falsch. > > Die Rechnung stimmt zwar, aber zB auch für das Jahr 1900, das > > ist/war aber definitiv kein Schaltjahr, weil 1900 mod 400 als > > Ergebnis nicht 0 sondern 300 liefert. Ein Jahrhundert ist nur dann > > ein Schaltjahr wenn "Jahr mod 400 = 0" ist. > > > > Sorry für die Klugscch... :-) > > Mathias, mäßige Deine Ausdrucksweise. Hätte ich vielleicht Besserwisserei schreiben sollen ;-)
> Außerdem hast Du einen Rechenfehler, denn gefordert war mod 4 nicht
> mod 400. Sollte Rest(x;4) mod 400 bedeutenm also falsch sein, dann
> kannst Du das erklären. Ich habe es nicht geprüft und auch als Basic
> nicht empfohlen.
Die Aussage oben ist: "Wenn der Rest von Jahr geteilt durch 4 den Wert 0
hat, ist Jahr ein Schaltjahr." Diese Aussage stimmt nur dann, wenn das
Jahr kein Jahrhundert ist. Für Jahrhunderte müssen folgende Bedingungen
erfüllt sein: "Wenn der Rest von Jahr geteilt durch 100 gleich 0 UND
Jahr geteilt durch 4 gleich 0 ist (also Jahr geteilt durch 400 gleich
0), dann ist Jahr ein Jahrhundert UND ein Schaltjahr."
Diese Bedingung war für das Jahr 2000 (1600, 1200, 800 und 400) aber
nicht für zB die Jahre 1900 (1800, 1700, etc) erfüllt. Erst wieder das
Jahr 2400 wird (als Jahrhundert) ein Schaltjahr sein.
Die Jahre 1500, 1400, 1300 etc waren allerdings auch Schaltjahre, aber
da hatten die Römer (Stichwort "Julianischer Kalender") eine etwas
andere Vorstellung vom Schaltjahr. Erst Papst Gregor XIII. hat die
Schaltjahre richtiger berechnet (berechnen lassen) und hat als
Konsequenz daraus eine Kalenderreform ("Gregorianischer Kalender")
veranlasst. Die dann in der Nacht vom 04. auf den 15. Oktober 1582 den
Kalender berichtigte und 10 Tage ausließ. Die orthodoxen Christen (zB
in Russland [genauer, dort wo ehemals das oströmische Reich war]) haben
diese Reform allerdings nicht mit gemacht und deshalb ist die
Oktoberrevolution eigentlich erst im November gewesen.
Die Berechnung eines Schaltjahres ist nicht trivial. Die restlose
Teilbarkeit durch 4 ist eine zwar notwendige, aber nicht hinreichende
Bedingung.
Die Berechnung oben ist formal korrekt, aber die Aussage ist mindestens
in Teilen falsch.
Alles klar? :-)
Entschuldigung für die Abschweifung in die Kalendergeschichte. :-), aber
Kalender sind faszinierend.
--
Mit freundlichen Grüßen
Matthias Müller
(Benutzer #439779 im Linux-Counter http://counter.li.org)
PS: Bitte senden Sie als Antwort auf meine E-Mails reine
Text-Nachrichten!
signature.asc
Description: This is a digitally signed message part.
