Zellers Kongruenz
Zellers Kongruenz ist ein Algorithmus entwickelt von Christian Zeller im 19. Jahrhundert zu Berechnen Sie den Wochentag für jeden julianisch oder Gregorianischer Kalender Datum. Es kann als basierend auf der Konvertierung zwischen betrachtet werden Julian Day und das Kalenderdatum.
Formel
Für den Gregorianischen Kalender ist Zellers Kongruenz
Für den julianischen Kalender ist es
wo
- h ist der Tag der Woche (0 = Samstag, 1 = Sonntag, 2 = Montag, ..., 6 = Freitag)
- q ist der Tag des Monats
- m ist der Monat (3 = März, 4 = April, 5 = Mai, ..., 14 = Februar)
- K das Jahr des Jahrhunderts ().
- J ist der Nullbasiert Jahrhundert (eigentlich ) Beispielsweise sind die z.
- ist der Bodenfunktion oder ganzzahliger Teil
- Mod ist der Modulo -Betrieb oder Rest nach Division
In diesem Algorithmus werden Januar und Februar als Monate 13 und 14 des Vorjahres gezählt. Z.B. Wenn es 2. Februar 2010 ist, zählt der Algorithmus das Datum als zweiter Tag des vierzehnten Monat 2009 (14.02.2009 im DD/MM/YYYY -Format)
Für ein ISO -Woche Datum Wochentag d (1 = Montag bis 7 = Sonntag), verwenden Sie
Analyse
Diese Formeln basieren auf der Beobachtung, dass der Wochentag auf vorhersehbare Weise auf jedem Teil dieses Datums beruht. Jeder Begriff innerhalb der Formel wird verwendet, um den Offset zu berechnen, der benötigt wird, um den richtigen Wochentag zu erhalten.
Für den Gregorianischen Kalender können die verschiedenen Teile dieser Formel daher wie folgt verstanden werden:
- repräsentiert den Fortschritt des Wochentags basierend auf dem Tag des Monats, da jeder aufeinanderfolgende Tag zu einem zusätzlichen Versatz von 1 am Wochentag führt.
- repräsentiert den Fortschritt des Wochentags basierend auf dem Jahr. Unter der Annahme, dass jedes Jahr 365 Tage lang ist, wird das gleiche Datum in jedem folgenden Jahr durch einen Wert von ausgeglichen .
- Da es in jedem Schaltjahr 366 Tage gibt, muss dies berücksichtigt werden, indem ein weiterer Tag zum Tag des Wochenversatzwerts hinzugefügt wird. Dies wird durch Hinzufügen erreicht bis zum Offset. Dieser Begriff wird als ganzzahliges Ergebnis berechnet. Jeder Rest wird verworfen.
- Unter Verwendung einer ähnlichen Logik kann das Fortschreiten des Wochentags für jedes Jahrhundert berechnet werden, indem beobachtet wird, dass es in einem normalen Jahrhundert 36524 Tage und 36525 Tage in jedem Jahrhundert um 400 teilbar sind. und , der Begriff Berücksichtigung dafür.
- Der Begriff Passt die Variation in den Tagen des Monats ein. Ab Januar sind die Tage im Monat {31, 28/29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}. 28 oder 29 Tage im Februar sind ein Problem, daher rollt die Formel im Januar und Februar bis zum Ende, sodass die kurze Zählung im Februar kein Problem verursacht. Die Formel interessiert sich für Tage der Woche, sodass die Zahlen in der Sequenz modulo 7 genommen werden können , 3, 2, 3, 3, 2, 3, 2, 3}. Ab März wechselt die Sequenz im Grunde genommen 3, 2, 3, 2, 3, aber alle fünf Monate gibt es zwei 31-Tage-Monate in Folge (Juli-August und Dezember bis Januar).[1] Der Bruch 13/5 = 2,6 und die Bodenfunktion haben diesen Effekt; Der Nenner von 5 legt einen Zeitraum von 5 Monaten fest.
- Die Gesamtfunktion, Normalisiert das Ergebnis für den Bereich von 0 bis 6, was den Index des richtigen Wochentags für das analysierte Datum ergibt.
Der Grund, warum sich die Formel für den julianischen Kalender unterscheidet, ist, dass dieser Kalender seit Jahrhunderten keine separate Regel hat und um eine feste Anzahl von Tagen pro Jahrhundert aus dem gregorianischen Kalender ausgeglichen wird.
Da der Gregorianische Kalender zu unterschiedlichen Zeiten in verschiedenen Regionen der Welt übernommen wurde, ist der Standort eines Ereignisses von Bedeutung, um den richtigen Wochentag für ein Datum zu bestimmen, das während dieser Übergangszeit aufgetreten ist. Dies ist erst 1929 erforderlich, da dies das letzte Jahr war, in dem der julianische Kalender noch von jedem Land auf der Erde verwendet wurde und daher nicht für 1930 oder später erforderlich ist.
Die Formeln können prolptisch verwendet werden, aber "Jahr 0" ist tatsächlich Jahr 1 v. Chr. (Siehe astronomisches Jahr Nummerierung). Der julianische Kalender ist bis zum 1. März, n. Chr., In der Zeit, in der der Kalender am 1. Januar 45 v. Chr. (Das war kein Schaltjahr), aufgrund des Missmanagements in Rom (aber nicht in Ägypten) im Zeitraum 4 n. Chr. Darüber hinaus kann der Modulo -Bediener Ganzzahlen in die falsche Richtung abschneiden (Decke anstelle von Boden). Um dies zu berücksichtigen, kann man ein ausreichendes Vielfachen von 400 Gregorianischen oder 700 Julianen hinzufügen.
Beispiele
Für den 1. Januar 2000 würde das Datum als 13. Monat 1999 behandelt, sodass die Werte sein würden:
Die Formel bewertet also als .
(Der 36 kommt von , verkürzt an eine Ganzzahl.)
Für den 1. März 2000 wird das Datum jedoch als 3. Monat des Jahres 2000 behandelt, sodass die Werte werden
Die Formel bewertet also als .
Implementierungen in Software
Grundveränderung
Die Formeln stützen sich auf die Definition des Mathematikers von Modulo Division, was bedeutet, dass –2 Mod 7 gleich positiv ist. Um die Kongruenz von Zeller auf einem Computer zu implementieren, sollten die Formeln leicht geändert werden, um einen positiven Zähler zu gewährleisten. Der einfachste Weg, dies zu tun, besteht darin, zu ersetzen - 2J durch + 5J und − J durch + 6J. Also werden die Formeln:
für den Gregorianischen Kalender und
Für den julianischen Kalender.
Man kann leicht sehen, dass in einem bestimmten Jahr, der 1. März (wenn dies ein Samstag ist, dann am 2. März) ein gutes Testdatum ist; Und das ist in einem bestimmten Jahrhundert das beste Testjahr das, was ein Vielfaches von 100 ist.
Häufige Vereinfachung
Zeller verwendete Dezimalarithmetik und fand sie bequem zu bedienen J und K bei der Vertretung des Jahres. Bei Verwendung eines Computers ist es jedoch einfacher, das geänderte Jahr zu verarbeiten Y und Monat m, welche sind Y - 1 und m + 3 Im Januar und Februar:
Für den gregorianischen Kalender (in diesem Fall besteht keine Möglichkeit eines Überlaufs, weil ), und
Für den julianischen Kalender.
Der obige Algorithmus wird für den gregorianischen Fall in erwähnt RFC 3339, Anhang B, wenn auch in einem gekürzten Formular, das 0 für Sonntag zurückgibt.
Andere Variationen
Mindestens drei weitere Algorithmen teilen die Gesamtstruktur von Zellers Kongruenz in seinem "gemeinsamen Vereinfachungstyp", auch mit einem m ∈ [3, 14] ∩ Z und das "modifizierte Jahr" -Konstrukt.
- Michael Keith veröffentlichte 1990 ein Stück sehr kurzer C -Code für gregorianische Daten. Die monatelange Komponente () wird durch ersetzt durch .[2]
- J R Stockton bietet eine Sonntag-IS-0-Version mit nennen es eine Variation von Zeller.[2]
- Claus Tøndering beschreibt als Ersatz.[3]
Es kann gezeigt werden m, was zu einem Startwert von 0 für Sonntag führt.
Siehe auch
Verweise
- ^ Die Regel über fünf Monate gilt nur für die zwölf Monate eines Jahres beginnend am 1. März und endet am letzten Tag des folgenden Februar.
- ^ a b Stockton, J. R. "Material im Zusammenhang mit Zellers Kongruenz". "Merlyn", archiviert in NCTU Taiwan.
- ^ Tøndering, Claus. "Wöchentliche Fragen". www.tondering.dk.
Literaturverzeichnis
Jedes dieser vier ähnlichen abgebildeten Papiere befasst sich zunächst mit dem Wochentag und zweitens mit dem Datum des Ostersonntags für die Julian- und Gregorianischen Kalender. Die Seiten verlinken mit Übersetzungen ins Englische.
- Zeller, Christian (1882). "Die Grundaufgaben der Kalenderrechnung auf Neue und Vereinfache Weise Gelöst". Württembergische Vierteljahrshefte für Landesgeschicht (auf Deutsch). V: 313–314. Archiviert von das Original am 11. Januar 2015.
- Zeller, Christian (1883). "Problema Duplex Calendarii Fundamentale". Bulletin de la Société Mathématique de France (in Latein). 11: 59–61. Archiviert von das Original am 11. Januar 2015.
- Zeller, Christian (1885). "Kalender-Formeln". Mathematisch-naturwissenschaftlich Mitte (auf Deutsch). 1 (1): 54–58. Archiviert von das Original am 11. Januar 2015.
- Zeller, Christian (1886). "Kalender-Formeln". Acta Mathematica (auf Deutsch). 9: 131–136. doi:10.1007/bf02406733.
Externe Links
- Die kalendrischen Werke von Rektor Chr. Zeller: Der Tag der Woche und Osterformeln von JR Stockton, in der Nähe von London, Großbritannien. Die Website enthält Bilder und Übersetzungen der oben genannten vier Arbeiten sowie von Zellers Referenzkarte "Das Ganzer der Kalender-Rechnung".
- Dieser Artikel enthält Public Domain Materialvon demNIST dokumentieren: Schwarz, Paul E. "Zellers Kongruenz". Wörterbuch von Algorithmen und Datenstrukturen.