Julianischer und Gregorianischer Kalender
Der Unterschied zwischen dem Julianischen Kalender und dem Gregorianischen Kalender kann für Ihr Programm wichtig sein, wenn es Daten vor dem Wechsel verwendet.
-
15. Oktober 1582.
-
14. September 1752.
Ein Datum wird im Allgemeinen in den beiden Kalendern unterschiedlich sein.
Unterschiedliche Wechseldaten
Die Gründe für den Unterschied liegen in der religiösen/politischen Geschichte.
-
Am 15. Oktober 1582 wechselten mehrere Länder vom Julianischen zum Gregorianischen Kalender; dazu gehörten Italien, Polen, Portugal und Spanien. Andere Länder in der westlichen Welt behielten den Julianischen Kalender bei.
-
Am 14. September 1752 wechselte der größte Teil des Britischen Empire vom Julianischen zum Gregorianischen Kalender.
Wenn Ihr Code ein Datum vor diesen Wechseldaten verwendet, spielt es eine Rolle, ob er das Wechseldatum als früheres Datum oder als späteres Datum (oder keines von beiden) betrachtet.
Siehe auch ein konkretes Beispiel hier.
Argument start
Bestimmte Methoden in der Klasse Date handhaben Unterschiede im Julianischen und Gregorianischen Kalender, indem sie ein optionales Argument start akzeptieren, dessen Wert sein kann
-
Date::ITALY (der Standard): Das erstellte Datum ist Julianisch, wenn es vor dem 15. Oktober 1582 liegt, sonst Gregorianisch
d = Date.new(1582, 10, 15) d.prev_day.julian? # => true d.julian? # => false d.gregorian? # => true
-
Date::ENGLAND: Das erstellte Datum ist Julianisch, wenn es vor dem 14. September 1752 liegt, sonst Gregorianisch
d = Date.new(1752, 9, 14, Date::ENGLAND) d.prev_day.julian? # => true d.julian? # => false d.gregorian? # => true
-
Date::JULIAN: Das erstellte Datum ist Julianisch, unabhängig von seinem Wert
d = Date.new(1582, 10, 15, Date::JULIAN) d.julian? # => true
-
Date::GREGORIAN: Das erstellte Datum ist Gregorianisch, unabhängig von seinem Wert
d = Date.new(1752, 9, 14, Date::GREGORIAN) d.prev_day.gregorian? # => true