Jahr Y ist ein Schaltjahr, wenn Y vollständig durch 4 und
teilbar istDie folgenden Quellen folgen der obigen Regel:
calendar.monthrange(1000,2)
ist (5, 28)) Die folgenden Quellen sagen jedoch 1000 war ein Schaltjahr:
cal 2 1000
zeigt 29 Tage an) Das Gregorianische System wurde in 1582 eingeführt, wo die obige Regel anscheinend zu gelten begann (vor 1582, dem Einzige Voraussetzung war die perfekte Aufteilung durch 4). Das Testen mehrerer anderer Jahreswerte (100, 500, 600, 700, 900, 1100, 1300, 1400, 1500 und 1700) zeigt jedoch, dass nur nach und einschließlich 1800 die Ergebnisse von Python und sind Linux cal stimmt zu.
Warum geben diese Quellen unterschiedliche Antworten?
Das Modul calendar
verwendet den proleptischen Gregorianischen Kalender.
Aus calendar
docs :
Die meisten dieser Funktionen und Klassen basieren auf dem
datetime
-Modul, das verwendet einen idealisierten Kalender, in dem der aktuelle Gregorianische Kalender erweitert wurde Beide Richtungen. Dies entspricht der Definition des "Proleptikers" Gregorian "Kalender in Dershowitz und Reingolds Buch" Calendrical Berechnungen ", wo es der Basiskalender für alle Berechnungen ist.
Von Wikipedia :
Der proleptische Gregorianer Kalender wird erzeugt, indem der Gregorianische Kalender rückwärts auf Daten erweitert wird vor seiner offiziellen Einführung im Jahr 1582.
Der Julianische Kalender wurde nicht durch den Gregorianischen Kalender an einem einzigen Datum ersetzt. Es wurde von verschiedenen Ländern zu verschiedenen Zeiten angenommen.
Von der Linux cal
man-Seite auf meiner (ziemlich alten) Maschine:
-s -file ... -country_code
Nehmen Sie den Wechsel vom Julianischen zum Gregorianischen Kalender am Datum an Verbunden mit dem country_code Wenn nicht angegeben, versucht
ncal
zu erraten der Wechsel erfolgt aus der lokalen Umgebung oder fällt auf September zurück 2, 1752. Damals wechselten Großbritannien und seine Kolonien in die Gregorianischer Kalender.[...]
BUGS
Die Zuordnung von Julian-Gregorianischen Umschaltzeitpunkten zu Ländercodes ist für viele Länder historisch naiv.