Astronomie

Bestimme das Julianische Datum aus dem Gregorianischen ohne Formel

Bestimme das Julianische Datum aus dem Gregorianischen ohne Formel

Als Übung versuche ich, die JD von einem bestimmten Datum im Gregorianischen Kalender zu einer in UT angegebenen Zeit zu berechnen. Darüber hinaus möchte ich dies von den ersten Prinzipien aus tun, ohne mich auf eine Formel zu verlassen. Nehmen wir an, ich wähle UT 18:30 am 28.02.2010. Ich bin nicht in der Lage, ein Ergebnis zu erhalten, das mit den Ergebnissen des U.S. Naval Observatory übereinstimmt. Ich brauche einen Kalender-Guru, der mir zeigt, wo meine Berechnungen in die Irre gehen.

Zuerst finde ich die Anzahl der Jahre ab 4713 v. Chr. (Julianisches Datum 0) und das Zieljahr, um sicherzustellen, dass ein zusätzliches Jahr hinzugefügt wird, um 0 n. Chr. einzuschließen. Das ist $4713 + 1 + 2010 = 6724$ Jahre. Die Anzahl dieser Jahre, die ein Sprung sind, ist $frac{6724}{4} - 3 = 1681$. Diese Gleichung versucht zu reflektieren, dass jedes vierte Jahr ein Schaltjahr ist, mit Ausnahme der Jahre, die nach 1582 (dem Jahr der Gregorianischen Kalenderreform) fallen, die beide teilbar sind durch $100$ und nicht durch $400$. Es gibt drei solcher Jahre, die von der Gesamtzahl abgezogen werden müssen – 1700, 1800, 1900 $6724 - 1681 = 5043$ Nicht-Schaltjahre.

Jetzt rechne ich diese in Tage um und ziehe die ab $10$ Tage, die im Zuge der Reform vom 4. bis 15. Oktober 1582 ausgelassen wurden. $5043*(365) + 1681*(366) - 10 = 2,455,928$. Als nächstes finde ich die Anzahl der Tage vom 1. Januar bis zum Zieltag im Zieljahr (28. Februar). Das ist $59$ Tage und so habe ich $2,455,987$.

Schließlich wird die Zeitanzahl der Sekunden am Nachmittag des Zieltages als Bruchteil der Anzahl der Sekunden in einem 24-Stunden-Zeitraum berechnet. Das klappt so $frac{6(60)(60) + 30(60)}{24(60)(60)} ca. 0,27$. Addiert man dies zu dem früheren Ergebnis, erhält man $JD = 2455987,27$.

Das tatsächlich Antwort ist $2455255.77$ was einen Unterschied von hinterlässt $2455987.27 - 2455255.77 = 731.5$ Tage. Das sind fast zwei Jahre. Offensichtlich habe ich die Berechnung entweder falsch verstanden oder falsch ausgeführt. Jede Hilfe wäre sehr dankbar!


Das Jahr 0 existiert nicht in der BCE/CE- und BC/AD-Notation. Es springt direkt von 1 BCE auf 1 CE. Wenn wir uns also die Reihenfolge der Jahre in BCE/CE-Notation ansehen, haben wir:

3 v. Chr. 2 v. Chr. 1 v. Chr. 1 v. Chr. 2 v. Chr. 3 v

Wenn Sie die Anzahl der Jahre zwischen dem 1. Januar 2 v. Chr. und dem 1. Januar 2 n. Chr. berechnen möchten, können Sie die Jahreszahlen addieren, um 4 zu erhalten, aber dann müssen Sie subtrahieren 1, um Jahr 0 aus der Summe zu entfernen, was insgesamt 3 Jahre ergibt. Dies führt in Ihrem speziellen Fall zu $4713 - 1 + 2010 = 6722$ Jahre.

In der Astronomie verwenden wir oft ein anderes Jahrnummerierungssystem namens Astronomische Jahresnummerierung, das ein Jahr 0 enthält und die Berechnung von Zeitintervallen zwischen den Epochen arithmetisch erleichtert. Es geht (-3, -2, -1, 0, 1, 2, etc.) Um Jahre v. Chr. in die Notation des astronomischen Jahres umzuwandeln, subtrahieren wir 1 und fügen minus (-) vor dem Jahr hinzu. Das Jahr 4713 v. Chr. ist beispielsweise -4712 in der Notation des astronomischen Jahres. Ihr Jahresintervall wird dann berechnet als $2010 - ( ext{-}4712) = 2010 + 4712 = 6722$.

Da -4712 ein Schaltjahr ist, vereinfacht dies die Berechnung der Schaltjahre, aber vergessen Sie nicht, die kleinste ganze Zahl größer oder gleich Ihrem Ergebnis (die Obergrenze) zu nehmen. Also in diesem Fall $frac{6722}{4} - 3 = 1677,5$, und die Obergrenze ist 1678, und das ist die Anzahl der Schaltjahre zwischen Ihren Jahren. Außerdem hatten Sie bei Ihrer anfänglichen Berechnung vergessen, 3 abzuziehen, da 6724 / 4 - 3 = 1678, nicht 1681.

Schließlich beträgt das Zeitintervall zwischen dem 1. Januar und dem 28. Februar 58 Tage, nicht 59, da wir das letzte Datum nicht als Teil des Intervalls zählen. Dies ergibt insgesamt $5044 * 365 + 1678 * 366 - 10 + 58 + frac{6 * 60 * 60 + 30 * 60}{24 * 60 * 60} = 2455256,27$.

Sie geben an, dass die tatsächliche Antwort 2455255,77 lautet, aber in Wirklichkeit lautet die Antwort 2455256,27. Vielleicht haben Sie im Konverter "06:30" statt "18:30" eingegeben.


Julianisches Jahr (Astronomie)

In der Astronomie, a Julianisches Jahr (Symbol: ein) ist eine Maßeinheit für die Zeit, die als exakt 365,25 Tage mit jeweils 86 400 SI-Sekunden definiert ist. [1] [2] [3] [4] Die Länge des Julianischen Jahres ist die durchschnittliche Jahreslänge im Julianischen Kalender, die in westlichen Gesellschaften bis zur Annahme des Gregorianischen Kalenders verwendet wurde und nach der die Einheit benannt ist . Da astronomische Julische Jahre jedoch eher die Dauer messen als Daten bezeichnen, entspricht dieses Julische Jahr nicht den Jahren im Julianischen Kalender oder einem anderen Kalender. Es entspricht auch nicht den vielen anderen Arten, ein Jahr zu definieren.


2 Antworten 2

Ich bin über diese alte Frage gestolpert und dachte, ich könnte ihr vielleicht ein paar neue Informationen hinzufügen. Die einzige vorhandene Antwort, während ich dies von Thomas Pornin schreibe, ist eine gute Antwort, und ich habe sie positiv bewertet. Ich habe es jedoch als Herausforderung genommen, es zu verbessern. Was wäre, wenn wir dieselbe Antwort doppelt so schnell produzieren könnten? Vielleicht sogar schneller?

Um diesen Versuch zu testen, habe ich die Antwort von Thomas in eine Funktion verpackt:

Und mein Versuch, es zu verbessern, basiert auf:

Der obige Artikel befasst sich nicht direkt mit dieser Situation. Es enthält jedoch detaillierte Beschreibungen der Algorithmen, die an Datumsmanipulationen beteiligt sind, und enthält sogar ein "Tag des Jahres" -Konzepts, obwohl sich dieses Konzept von dem unterscheidet, was in dieser Frage angegeben ist:

In dieser Frage ist "Tag des Jahres" eine 1-basierte Zählung, wobei der 01. Januar der Beginn des Jahres ist (1. Januar == Tag 1). Chrono-kompatible Low-Level-Datumsalgorithmen haben ein ähnliches "Tag des Jahres"-Konzept im Algorithmus civil_from_days, aber es ist Tage nach dem 01. März (1. März == Tag 0).

Mein Gedanke ist, dass ich Teile von civil_from_days auswählen und ein neues ymd_from_ydoy erstellen könnte, das nicht über die 12 Monate iterieren musste, um das gewünschte Ergebnis zu finden. Hier ist, was ich mir ausgedacht habe:

Es gibt noch Filialen, aber weniger. Um sowohl die Korrektheit als auch die Leistung dieser Alternative zu testen, habe ich Folgendes geschrieben:

Es gibt drei Schleifen in diesem Test:

  1. Testen Sie, ob die beiden Algorithmen über einen Bereich von +/- einer Million Jahren die gleichen Ergebnisse liefern.
  2. Zeit den ersten Algorithmus.
  3. Zeit für den zweiten Algorithmus.

Es stellt sich heraus, dass beide Algorithmen unglaublich schnell sind. eine Handvoll Nanosekunden auf dem iMac Core i5, auf dem ich teste. Und daher die Einführung von Pikosekunden, um eine Schätzung erster Ordnung von Bruchteilen von Nanosekunden zu erhalten.

Ich möchte auf zwei Dinge hinweisen:

  1. Wie cool ist es, dass wir Pikosekunden als Maßeinheit verwenden?
  2. Wie cool ist es, dass std::chrono die Interoperabilität mit Pikosekunden so einfach macht?

Für mich druckt dieser Test (ungefähr):

Dies zeigt an, dass ymd_from_ydoy2 ungefähr 3,3-mal schneller ist als ymd_from_ydoy1.


3. Julianische Tagesnummer

Nach Herschels Führung übernahmen Astronomen dieses System und nahmen den Mittag GMT -4712-01-01 JC (1. Januar, 4713 v. Chr.) als ihren Nullpunkt. (Beachten Sie, dass 4713 v. Chr. gemäß der astronomischen Jahresnummerierung das Jahr -4712 ist.) Für Astronomen beginnt ein "Tag" um Mittag (GMT) und dauert bis zum nächsten Mittag (damit die Nacht bequem in einen "Tag" Beobachtungen an einem Ort wie Australien). So definierten sie die Julianische Tageszahl eines Tages als die Anzahl der Tage, die seit dem 1. Januar 4713 v. Chr. verstrichen sind. im proleptischen Julianischen Kalender.

Somit ist die Julianische Tagesnummer von -4712-01-01 JC 0. Die Julianische Tagesnummer von 1996-03-31 CE (Common Era) ist 2.450.174 — was bedeutet, dass seit 1996-03-31 CE 2.450.174 Tage vergangen waren -4712-01-01 JC.

Eigentlich bedeutet "day" hier einen Tag und eine Nacht. Kalendriker haben ein Wort für einen Tag und eine Nacht, nämlich "nychthemeron". Wenn Kalenderschreiber den Begriff "Tage" verwenden, sprechen sie im Allgemeinen von Nychthemeronen.

In den meisten Kalendern ändert sich das Kalenderdatum um Mitternacht. In diesen Kalendern ist ein Nychthemeron der Zeitraum von Mitternacht bis Mitternacht. Für Astronomen läuft ein Nychthemeron jedoch nicht von Mitternacht bis Mitternacht, sondern von Mittag bis Mittag. Und in einigen Kalendern, z. B. dem jüdischen Kalender, läuft ein Nychthemeron von Sonnenuntergang zu Sonnenuntergang. Somit bedeutet ein Nychthemeron einfach einen Tag und eine Nacht und kann nicht genauer definiert werden, außer in Bezug auf einen bestimmten Kalender oder eine bestimmte Klasse von Kalendern.

Die Julianische Tageszahl ist eine Anzahl von Nychthemeronen, die seit einem bestimmten Nychthemeron vergangen sind. Daher gibt es geringfügige Variationen des Julianischen Tageszahlensystems, je nachdem, welche Art von Nychthemeron gezählt wird, wie wir weiter unten sehen werden.


Inhalt

Der Begriff Julianisches Datum kann sich außerhalb der Astronomie auch auf die Jahreszahl (genauer gesagt das Ordnungsdatum) im Gregorianischen Kalender beziehen, insbesondere in der Computerprogrammierung, im Militär und in der Lebensmittelindustrie, [10] oder kann sich auf Daten beziehen im Julianischen Kalender. Wenn beispielsweise ein bestimmtes "julianisches Datum" "5. Oktober 1582" ist, bedeutet dies dieses Datum im Julianischen Kalender (der 15. Oktober 1582 im Gregorianischen Kalender war das Datum, an dem er erstmals festgelegt wurde). Ohne einen astronomischen oder historischen Kontext bedeutet ein als "36" angegebenes "julianisches Datum" höchstwahrscheinlich den 36. Tag eines bestimmten gregorianischen Jahres, nämlich den 5. Februar. Andere mögliche Bedeutungen eines "julianischen Datums" von "36" umfassen ein astronomisches Julian Tageszahl oder das Jahr 36 n. Chr. im julischen Kalender oder eine Dauer von 36 astronomischen julischen Jahren). Aus diesem Grund werden die Begriffe "Ordinaldatum" oder "Tag des Jahres" bevorzugt. In Kontexten, in denen ein "julianisches Datum" einfach ein ordinales Datum bedeutet, werden Kalender eines gregorianischen Jahres mit Formatierung für ordinale Datumsangaben oft genannt "Julianische Kalender", [10] könnte aber auch bedeuten, dass die Kalender im julianischen Kalendersystem von Jahren sind.

Historisch gesehen wurden Julianische Daten relativ zur Greenwich Mean Time (GMT) (später Ephemeridenzeit) aufgezeichnet, aber seit 1997 empfiehlt die Internationale Astronomische Union, dass Julianische Daten in Erdzeit angegeben werden. [11] Seidelmann weist darauf hin, dass Julianische Daten mit der Internationalen Atomzeit (TAI), der Erdzeit (TT), der baryzentrischen Koordinatenzeit (TCB) oder der koordinierten Weltzeit (UTC) verwendet werden können und dass die Skala angegeben werden sollte, wenn die Differenz ist von Bedeutung. [12] Der Bruchteil des Tages wird durch Umrechnen der Stunden, Minuten und Sekunden nach Mittag in den entsprechenden Dezimalbruch ermittelt. Zeitintervalle, die aus Differenzen von Julian Dates berechnet werden, die in nicht einheitlichen Zeitskalen wie UTC angegeben sind, müssen möglicherweise aufgrund von Änderungen in Zeitskalen (z. B. Schaltsekunden) korrigiert werden. [6]

Da der Ausgangspunkt oder die Referenzepoche so lange her ist, können die Zahlen im Julischen Tag ziemlich groß und schwerfällig sein. Manchmal wird ein neuerer Ausgangspunkt verwendet, beispielsweise indem die führenden Ziffern weggelassen werden, um mit ausreichender Genauigkeit in den begrenzten Computerspeicher zu passen. In der folgenden Tabelle sind die Zeiten in 24-Stunden-Notation angegeben.

In der Tabelle unten, Epoche bezieht sich auf den Zeitpunkt, der verwendet wird, um den Ursprung (normalerweise Null, aber (1), wo ausdrücklich angegeben) der in dieser Zeile diskutierten alternativen Konvention festzulegen. Das angegebene Datum ist ein gregorianisches Kalenderdatum, wenn es der 15. Oktober 1582 oder später ist, aber ein julianisches Kalenderdatum, wenn es früher liegt. JD steht für Julian Date. 0h ist 00:00 Mitternacht, 12h ist 12:00 mittags, UT, sofern nicht anders angegeben. Aktueller Wert von 01:33, Donnerstag, 24. Juni 2021 (UTC) und kann zwischengespeichert werden. (aktualisieren)

  • Das Modified Julian Date (MJD) wurde 1957 vom Smithsonian Astrophysical Observatory eingeführt, um die Umlaufbahn von Sputnik über eine IBM 704 (36-Bit-Maschine) und mit nur 18 Bit bis zum 7. August 2576 aufzuzeichnen. MJD ist die Epoche von VAX/ VMS und sein Nachfolger OpenVMS verwenden 63-Bit-Datum/Uhrzeit, wodurch Zeiten bis zum 31. Juli 31086, 02:48:05.47 Uhr gespeichert werden können. [18] Der MJD hat einen Startpunkt um Mitternacht am 17. November 1858 und wird berechnet durch MJD = JD - 2400000.5 [19]
  • Der Truncated Julian Day (TJD) wurde 1979 von NASA/Goddard als Teil eines parallel gruppierten binären Zeitcodes (PB-5) eingeführt, der „speziell, aber nicht ausschließlich, für Raumfahrzeuganwendungen entwickelt wurde“. TJD war eine 4-stellige Tageszählung von MJD 40000, die am 24. Mai 1968 war, dargestellt als 14-Bit-Binärzahl. Da dieser Code auf vier Ziffern beschränkt war, wurde TJD auf MJD 50000 oder 10. Oktober 1995 auf Null zurückgesetzt, "was einen langen Mehrdeutigkeitszeitraum von 27,4 Jahren ergibt". (Die NASA-Codes PB-1 bis PB-4 verwendeten eine 3-stellige Jahreszahl.) Es werden nur ganze Tage dargestellt. Die Tageszeit wird durch die Anzahl der Sekunden eines Tages plus optionale Millisekunden, Mikrosekunden und Nanosekunden in separaten Feldern ausgedrückt. Später wurde PB-5J eingeführt, das das TJD-Feld auf 16 Bit erhöhte und Werte bis zu 65535 ermöglichte, was im Jahr 2147 auftreten wird. Nach TJD 9999 sind fünf Ziffern aufgezeichnet. [20][21]
  • Das Dublin Julian Date (DJD) ist die Anzahl der Tage, die seit der Epoche der Sonnen- und Mondephemeriden von 1900 bis 1983, Newcombs Sonnentafeln und Ernest W. Browns Tabellen der Mondbewegung (1919). Diese Epoche war am 0. Januar 1900 mittags UT, was dem 31.12.1899 mittags UT entspricht. Der DJD wurde 1955 von der International Astronomical Union auf ihrem Treffen in Dublin, Irland, festgelegt. [22]
  • Die Lilian-Tageszahl ist eine Anzahl von Tagen des gregorianischen Kalenders und nicht relativ zum Julian-Datum definiert. Es ist eine ganze Zahl, die auf einen ganzen Tag angewendet wird. Tag 1 war der 15. Oktober 1582, der Tag, an dem der Gregorianische Kalender in Kraft trat. Das Originalpapier, in dem es definiert wurde, erwähnt weder die Zeitzone noch die Tageszeit. [23] Es wurde nach Aloysius Lilius, dem Hauptautor des Gregorianischen Kalenders, benannt. [24] ist ein System, das in Rexx, Go und Python verwendet wird. [25] Einige Implementierungen oder Optionen verwenden die Weltzeit, andere verwenden die Ortszeit. Tag 1 ist der 1. Januar, dh der erste Tag der christlichen oder Common Era im proleptischen gregorianischen Kalender. [26] In Rexx ist der 1. Januar Tag 0. [27]

Der heliozentrische Julianische Tag (HJD) ist derselbe wie der Julische Tag, jedoch an den Bezugsrahmen der Sonne angepasst und kann sich daher um bis zu 8,3 Minuten (498 Sekunden) vom Julianischen Tag unterscheiden braucht Licht, um die Erde von der Sonne zu erreichen. [c]

Julianische Periode Bearbeiten

Das Julianische Tagesnummer basiert auf der Julianische Periode vorgeschlagen von Joseph Scaliger, einem klassischen Gelehrten, im Jahr 1583 (ein Jahr nach der Gregorianischen Kalenderreform), da es das Produkt von drei Kalenderzyklen ist, die mit dem Julianischen Kalender verwendet werden:

Seine Epoche tritt ein, als alle drei Zyklen (wenn sie weit genug rückwärts fortgeführt werden) in ihrem ersten gemeinsamen Jahr waren. Die Jahre der Julianischen Periode werden ab diesem Jahr, 4713 v. Chr., als Jahr 1 gezählt, das vor allen historischen Aufzeichnungen gewählt wurde. [28]

Scaliger korrigierte die Chronologie, indem er jedem Jahr einen trizyklischen "Charakter" zuordnete, wobei drei Zahlen die Position dieses Jahres im 28-jährigen Sonnenzyklus, dem 19-jährigen Mondzyklus und dem 15-jährigen Indikationszyklus angeben. Eine oder mehrere dieser Zahlen tauchten in den historischen Aufzeichnungen oft neben anderen relevanten Fakten auf, ohne das julianischen Kalenderjahr zu erwähnen. Der Charakter jedes Jahres in der historischen Aufzeichnung war einzigartig – es konnte nur zu einem Jahr in der 7980-jährigen Julian-Periode gehören. Scaliger stellte fest, dass 1 v. Chr. oder das Jahr 0 die Julische Periode (JP) 4713 war. Er wusste, dass 1 v. Chr. oder 0 den Charakter 9 des Sonnenzyklus, 1 des Mondzyklus und 3 des Anzeigezyklus hatte. Durch die Untersuchung eines 532-jährigen Osterzyklus mit 19 Sonnenzyklen (jedes Jahr nummeriert 1–28) und 28 Mondzyklen (jedes Jahr nummeriert 1–19), stellte er fest, dass die ersten beiden Zahlen, 9 und 1, im Jahr 457 auftraten Er berechnete dann durch Restdivision, dass er acht 532-jährige Osterzyklen mit insgesamt 4256 Jahren vor dem Zyklus mit 1 v. Chr. oder 0 addieren musste, damit sein Jahr 457 Indikation 3 war. Die Summe 4256 + 457 war also JP 4713 . [29]

Eine Formel zur Bestimmung des Jahres der Julianischen Periode aufgrund ihres Charakters mit drei vierstelligen Zahlen wurde 1665 von Jacques de Billy in der Philosophische Transaktionen der Royal Society (im ersten Jahr). [30] John F. W. Herschel gab die gleiche Formel mit leicht abweichender Formulierung in seinem 1849 Umrisse der Astronomie. [31]

Multiplizieren Sie die Solar Zyklus bis 4845, und die Mond, um 4200, und die der Anzeige, durch 6916. Dann dividiere die Summe der Produkte durch 7980, was Julianische Periode: Das Rest der Division, ohne Rücksicht auf die Quotient, ist das Jahr danach abgefragt.

Carl Friedrich Gauss führte 1801 die Modulo-Operation ein und formulierte de Billys Formel wie folgt:

Jahr der Julianischen Periode = (6916ein + 4200b + 4845c) MOD 15×19×28

wo ein ist das Jahr des Indikationszyklus, b des Mondzyklus und c des Sonnenzyklus. [32] [33]

John Collins beschrieb 1666 anhand vieler Versuche, wie diese drei Zahlen berechnet wurden. [34] Eine Zusammenfassung von Collins Beschreibung befindet sich in einer Fußnote. [35] Reese, Everett und Craun reduzierten die Dividenden im Versuchen Spalte von 285, 420, 532 auf 5, 2, 7 und änderte den Rest in Modulo, erforderte aber anscheinend noch viele Versuche. [36]

Die spezifischen Zyklen, die Scaliger verwendet, um seine trizyklische Julische Periode zu bilden, waren zuerst der Indizierungszyklus mit einem ersten Jahr von 313. [d] [37] Dann wählte er den dominanten 19-jährigen alexandrinischen Mondzyklus mit einem ersten Jahr von 285, die Ära der Märtyrer und die Diokletian-Ära, [38] oder ein erstes Jahr von 532 nach Dionysius Exiguus. [39] Schließlich wählte Scaliger den Post-Bedan-Sonnenzyklus mit einem ersten Jahr von 776, als sein erstes Quadrennium von Parallelen, 1 2 3 4, nacheinander begann. [e] [40] [41] [42] Obwohl dies nicht deren beabsichtigter Verwendungszweck ist, können die Gleichungen von de Billy oder Gauss verwendet werden, um das erste Jahr einer 15-, 19- und 28-jährigen trizyklischen Periode zu bestimmen, wenn jede erste Jahre ihrer Zyklen. Für diejenigen der Julischen Periode ist das Ergebnis 3268 n. Chr., da sowohl Rest als auch Modulo normalerweise das niedrigste positive Ergebnis liefern. Daher müssen 7980 Jahre davon abgezogen werden, um das erste Jahr der gegenwärtigen Julianischen Periode, -4712 oder 4713 v. Chr., zu erhalten, wenn alle drei Unterzyklen in ihren ersten Jahren sind.

Scaliger hatte die Idee, eine trizyklische Periode von "den Griechen von Konstantinopel" zu verwenden, wie Herschel in seinem Zitat unten in Julianischen Tageszahlen feststellte. [43] Insbesondere schrieb der Mönch und Priester Georgios 638/39, dass das byzantinische Jahr 6149 AM (640/41) Indikation 14, Mondzyklus 12 und Sonnenzyklus 17 hatte, was das erste Jahr der byzantinischen Ära auf 5509 setzt /08 v. Chr., die byzantinische Schöpfung. [44] Dionysius Exiguus bezeichnete den byzantinischen Mondzyklus in Argumentum 6 als seinen "Mondzyklus", im Gegensatz zum alexandrinischen Mondzyklus, den er in Argumentum 5 als seinen "neunzehnjährigen Zyklus" bezeichnete. [45]

Obwohl viele Referenzen sagen, dass die julianisch in "Julianischer Periode" bezieht sich auf Scaligers Vater, Julius Scaliger, am Anfang von Buch V seiner Opus de Emendatione Temporum ("Work on the Emendation of Time") sagt er: "Iulianam vocauimus: quia ad annum Iulianum accomodata", [46] [47] was Reese, Everett und Craun mit "Wir haben es als Julian bezeichnet, weil es ins Julianische Jahr passt." [36] julianisch bezieht sich auf den julianischen Kalender.

Julianische Tageszahlen Bearbeiten

Julianische Tage wurden erstmals von Ludwig Ideler für die ersten Tage der Nabonassar- und christlichen Ära in seinem 1825 verwendet Handbuch der mathematischen und technischen Chronologie. [48] ​​[49] John F. W. Herschel entwickelte sie dann in seinem 1849 Umrisse der Astronomie, nachdem er anerkannt hatte, dass Ideler sein Führer war. [50]

Die so entstandene Periode von 7980 julischen Jahren wird die julianische Periode genannt, und sie hat sich als so nützlich erwiesen, dass die kompetentesten Behörden nicht gezögert haben zu erklären, dass durch ihre Verwendung Licht und Ordnung zuerst in die Chronologie eingeführt wurden. [51] Seine Erfindung oder Wiederbelebung verdanken wir Joseph Scaliger, der es von den Griechen von Konstantinopel erhalten haben soll. Das erste Jahr der aktuellen Julianischen Periode, oder dasjenige, dessen Zahl in jedem der drei untergeordneten Zyklen 1 ist, war das Jahr 4713 v. Chr., und der Mittag des 1. Januar dieses Jahres ist für den Meridian von Alexandria die chronologische Epoche, auf die sich alle historischen Epochen am leichtesten und verständlichsten beziehen, indem man die Anzahl der ganzzahligen Tage berechnet, die zwischen dieser Epoche und dem Mittag (für Alexandria) des Tages liegen, der als erster der jeweiligen Epoche gilt. Der Meridian von Alexandria wird als der gewählt, auf den Ptolemäus den Beginn der Ära Nabonassars bezieht, die Grundlage all seiner Berechnungen. [52]

Mindestens ein mathematischer Astronom übernahm sofort Herschels "Tage der julianischen Zeit". Benjamin Peirce von der Harvard University hat über 2.800 Julianische Tage in seinem Tabellen des Mondes, begonnen 1849, aber erst 1853 veröffentlicht, zur Berechnung der Mondephemeriden im neuen Amerikanische Ephemeriden und nautischer Almanach von 1855 bis 1888. Die Tage sind für "Washington Mean Noon" angegeben, wobei Greenwich definiert ist als 18 h 51 m 48 s westlich von Washington (282° 57′W oder Washington 77°3′W von Greenwich). Eine Tabelle mit 197 julianischen Tagen ("Datum in mittleren Sonnentagen", meistens einer pro Jahrhundert) wurde für die Jahre –4713 bis 2000 ohne Jahr 0 aufgenommen, also bedeutet „–“ BC, einschließlich Dezimalbrüche für Stunden, Minuten und Sekunden . [53] Dieselbe Tabelle erscheint in Tabellen von Merkur von Joseph Winlock, ohne andere Julianische Tage. [54]

Die nationalen Ephemeriden begannen, eine mehrjährige Tabelle der julianischen Tage unter verschiedenen Namen entweder für jedes Jahr oder jedes Schaltjahr, beginnend mit dem Französischen, aufzunehmen Connaissance des Temps im Jahr 1870 für 2.620 Jahre, bis 1899 auf 3.000 Jahre ansteigend. [55] Die Briten Nautischer Almanach begann 1879 mit 2000 Jahren. [56] Die Berliner Astronomisches Jahrbuch begann 1899 mit 2.000 Jahren. [57] Die Amerikanische Ephemeriden war der letzte, der 1925 eine mehrjährige Tabelle mit 2.000 Jahren hinzufügte. [58] Es war jedoch die erste, die Julianische Tage mit einem für das Ausgabejahr ab 1855 erwähnte, sowie später vereinzelte Abschnitte mit vielen Tagen im Ausgabejahr. Es war auch das erste, das 1918 den Namen "Julianische Tagesnummer" verwendet Nautischer Almanach begann im Jahr 1866, für jeden Tag im Ausgabejahr einen Julianischen Tag einzufügen. Das Connaissance des Temps begann im Jahr 1871, für jeden Tag im Ausgabejahr einen Julianischen Tag einzufügen.

Der französische Mathematiker und Astronom Pierre-Simon Laplace drückte in seinem Buch erstmals die Tageszeit als Dezimalbruch aus, der zu Kalenderdaten hinzugefügt wurde. Traité de Mécanique Céleste, im Jahr 1823. [59] Andere Astronomen fügten der Julianischen Tageszahl Bruchteile des Tages hinzu, um Julianische Daten zu erstellen, die normalerweise von Astronomen verwendet werden, um astronomische Beobachtungen zu datieren, wodurch die Komplikationen beseitigt werden, die sich aus der Verwendung von Standardkalenderperioden wie Epochen, Jahren, oder Monate. Sie wurden erstmals 1860 von dem englischen Astronomen Norman Pogson in die Arbeit mit veränderlichen Sternen eingeführt, was seiner Meinung nach auf Vorschlag von John Herschel geschah. [60] Sie wurden 1890 von Edward Charles Pickering vom Harvard College Observatory für veränderliche Sterne populär gemacht. [61]

Julianische Tage beginnen mittags, denn als Herschel sie empfahl, begann der astronomische Tag mittags. Der astronomische Tag hatte um Mittag begonnen, seit Ptolemaios beschlossen hatte, die Tage für seine astronomischen Beobachtungen mittags zu beginnen. Er wählte den Mittag, weil der Durchgang der Sonne über den Meridian des Beobachters jeden Tag des Jahres zur gleichen scheinbaren Zeit stattfindet, im Gegensatz zu Sonnenaufgang oder Sonnenuntergang, die um mehrere Stunden variieren. Mitternacht wurde nicht einmal berücksichtigt, da sie mit Wasseruhren nicht genau bestimmt werden konnte. Trotzdem hat er die meisten nächtlichen Beobachtungen doppelt datiert, wobei sowohl die ägyptischen Tage mit Sonnenaufgang als auch die babylonischen Tage mit dem Sonnenuntergang beginnen. [62] Mittelalterliche muslimische Astronomen verwendeten Tage, die mit Sonnenuntergang begannen, so dass astronomische Tage, die mittags begannen, ein einziges Datum für eine ganze Nacht ergaben. Spätere mittelalterliche europäische Astronomen verwendeten römische Tage, die um Mitternacht beginnen, so dass astronomische Tage, die mittags beginnen, auch Beobachtungen während einer ganzen Nacht ermöglichen, um ein einziges Datum zu verwenden. Als alle Astronomen beschlossen, ihre astronomischen Tage um Mitternacht zu beginnen, um dem Beginn des bürgerlichen Tages am 1. Januar 1925 zu entsprechen, wurde beschlossen, die julianischen Tage mit der vorherigen Praxis fortzusetzen, beginnend mit Mittag.

In diesem Zeitraum kam es auch zur Verwendung von Julian Day Numbers als neutraler Vermittler bei der Umwandlung eines Datums in einem Kalender in ein Datum in einem anderen Kalender. Eine isolierte Verwendung war von Ebenezer Burgess in seinem 1860 Übersetzung des Surya Siddhanta Darin erklärte er, dass der Beginn der Kali Yuga-Ära um Mitternacht auf dem Meridian von Ujjain am Ende des 588.465 JP 1612 oder 3102 v. Chr. . [63] [64] Robert Schram war bemerkenswert, beginnend mit seinem 1882 Hilfstafeln für Chronologie. [65] Hier verwendete er etwa 5.370 „Tage der Julianischen Periode“. Er erweiterte seine Verwendung der julianischen Tage in seinem 1908 erheblich Kalendariographische und Chronologische Tafeln mit über 530.000 julianischen Tagen, einen für den nullten Tag jedes Monats über Tausende von Jahren in vielen Kalendern. Er schloss über 25.000 negative Julianische Tage ein, die in positiver Form angegeben wurden, indem man jeweils 10.000.000 hinzufügte. Er nannte sie in seiner Diskussion "Tag der Julianischen Periode", "Julianischer Tag" oder einfach "Tag", aber in den Tabellen wurde kein Name verwendet. [66] In Fortsetzung dieser Tradition verwendet der britische Physikpädagoge und Programmierer Edward Graham Richards in seinem Buch "Mapping Time: The Calendar and Its History" julianischen Tageszahlen, um Daten von einem Kalender in einen anderen mit Algorithmen statt Tabellen umzuwandeln. [67]

Die Julianische Tageszahl lässt sich nach folgenden Formeln berechnen (es wird ausschließlich auf ganzzahlige Division gerundet, d. h. positive Werte werden abgerundet und negative Werte aufgerundet): [f]

Die Monate Januar bis Dezember sind von 1 bis 12 nummeriert. Für das Jahr wird die astronomische Jahreszahl verwendet, also ist 1 v. Chr. 0, 2 v. Chr. -1 und 4713 v. Chr. ist -4712. JDN ist die Julianische Tageszahl. Verwenden Sie den Vortag des Monats, wenn Sie versuchen, die JDN eines Augenblicks vor Mittag UT zu finden.

Konvertieren des Gregorianischen Kalenderdatums in die Julianische Tagesnummer Bearbeiten

Der Algorithmus ist für alle (möglicherweise proleptischen) gregorianischen Kalenderdaten nach dem 23. November -4713 gültig. Divisionen sind ganzzahlige Divisionen, Bruchteile werden ignoriert. [68]

JDN = (1461 × (Y + 4800 + (M − 14)/12))/4 + (367 × (M − 2 − 12 × ((M − 14)/12)))/12 − (3 × ( (Y + 4900 + (M - 14)/12)/100))/4 + D − 32075

Konvertieren des julianischen Kalenderdatums in die julianischen Tagesnummer Bearbeiten

Der Algorithmus [69] gilt für alle (möglicherweise proleptischen) julischen Kalenderjahre ≥ −4712, also für alle JDN ≥ 0. Divisionen sind ganzzahlige Divisionen, Nachkommastellen werden ignoriert.

JDN = 367 × Y − (7 × (Y + 5001 + (M − 9)/7))/4 + (275 × M)/9 + D + 1729777

Finden des julianischen Datums mit der julianischen Tagesnummer und der Tageszeit Bearbeiten

Für das vollständige Julianische Datum eines Moments nach 12:00 UT kann man Folgendes verwenden. Divisionen sind reelle Zahlen.

So entspricht beispielsweise der 1. Januar 2000 um 18:00:00 UT JD = 2451545.25

Fügen Sie für einen Zeitpunkt an einem bestimmten julianischen Tag nach Mitternacht UT und vor 12:00 UT 1 hinzu oder verwenden Sie die JDN des nächsten Nachmittags.

Finden des Wochentags mit der julianischen Tagesnummer Bearbeiten

Der US-Wochentag W1 (für eine Nachmittags- oder Abend-UT) kann aus der Julian Day Number ermittelt werden J mit dem Ausdruck:

W1 = mod(J + 1, 7) [70]

W1 0 1 2 3 4 5 6
Wochentag Sonne Montag Di Heiraten Do Freitag Sa

Wenn der Zeitpunkt nach Mitternacht UT (und vor 12:00 UT) liegt, befindet man sich bereits im nächsten Wochentag.

Der ISO-Wochentag W0 kann aus der Julian Day Number ermittelt werden J mit dem Ausdruck:

W0 = mod(J, 7) + 1

W0 1 2 3 4 5 6 7
Wochentag Montag Di Heiraten Do Freitag Sa Sonne

Julianischer oder gregorianischer Kalender von der julianischen Tagesnummer Bearbeiten

Dies ist ein Algorithmus von Edward Graham Richards zum Konvertieren einer Julian Day Number, J, auf ein Datum im Gregorianischen Kalender (ggf. proleptisch). Richards gibt an, dass der Algorithmus für Julianische Tageszahlen größer oder gleich 0 gültig ist. [71] [72] Alle Variablen sind ganzzahlige Werte, und die Notation "ein div b" zeigt ganzzahlige Division an und "mod(ein,b)" bezeichnet den Modulooperator.

Algorithmusparameter für den Gregorianischen Kalender
Variable Wert Variable Wert
ja 4716 v 3
j 1401 du 5
ich 2 so 153
nein 12 w 2
r 4 B 274277
p 1461 C −38

1. f = J + j

1. f = J + j + (((4 × J + B) div. 146097) × 3) div. 4 + C

Für Julian oder Gregorian fahren Sie fort:

2. e = r × f + v 3. G = mod(e, p) div r 4. ha = du × G + w 5. D = (mod(h, so)) div du + 1 6. M = mod(ha div so + ich, nein) + 1 7. Ja = (e div p) - ja + (nein + ich - M) div nein

D, M, und Ja sind die Zahlen des Tages, des Monats bzw. des Jahres für den Nachmittag zu Beginn des gegebenen Julianischen Tages.

Julianische Periode aus Indikation, Meton und Sonnenzyklen Bearbeiten

Sei Y das Jahr v. Chr. oder n. Chr. und i, m bzw. s seine Positionen im Indikations-, Meton- und Sonnenzyklus. Dividiere 6916i + 4200m + 4845s durch 7980 und nenne den Rest r.

Wenn r>4713, Y = (r − 4713) und ein Jahr n. Chr. ist. Wenn r<4714, Y = (4714 − r) und ein Jahr BC ist.

i = 8, m = 2, s = 8. Wie lautet das Jahr?

(6916 × 8) = 55328 (4200 × 2) = 8400: (4845 × 8) = 38760. 55328 + 8400 + 38760 = 102488. 102488/7980 = 12 Rest 6728. Y = (6728 − 4713) = AD 2015. [73]

Wie oben erwähnt, ist das julianische Datum (JD) eines beliebigen Zeitpunkts die julianische Tageszahl für den vorhergehenden Mittag in Weltzeit plus dem Bruchteil des Tages seit diesem Zeitpunkt. Normalerweise berechnet man den Bruchteil des JD ganz einfach aus der Anzahl der Sekunden, die an einem Tag verstrichen sind, geteilt durch die Anzahl der Sekunden eines Tages, 86.400. Wenn jedoch die UTC-Zeitskala verwendet wird, enthält ein Tag mit einer positiven Schaltsekunde 86.401 Sekunden (oder im unwahrscheinlichen Fall einer negativen Schaltsekunde 86.399 Sekunden). Eine maßgebliche Quelle, die Standards of Fundamental Astronomy (SOFA), befasst sich mit diesem Thema, indem sie Tage mit einer Schaltsekunde als unterschiedlich lang behandelt (86.401 oder 86.399 Sekunden, je nach Bedarf). SOFA bezeichnet das Ergebnis einer solchen Berechnung als "Quasi-JD". [74]


Astronomische Berechnungen: Der Julische Tag

Später möchte ich eine Implementierung veröffentlichen, wie man geozentrische Sonnenkoordinaten für ein bestimmtes Datum und eine bestimmte Uhrzeit basierend auf Algorithmen berechnet, die in . veröffentlicht wurden Astronomische Algorithmen von Jean Meeus. Aber das ist sehr aufwendig und wird ein langer Post. Also dachte ich, es wäre klug, zuerst über Daten und Uhrzeiten zu sprechen, die von Astronomen verwendet werden. Dies wird sozusagen “ den Boden vorbereiten”.

Im Westen verwenden wir den Gregorianischen Kalender, der am 4. Oktober 1582 begann und den Julianischen Kalender ersetzte. Um die im Laufe der Jahrhunderte angesammelte Abweichung vom Julianischen Kalender zu beheben, folgte auf den 4. Oktober der 15. Oktober. Wie Sie sich vorstellen können, führte dies zu viel Verwirrung, da einige noch den alten Kalender verwendeten und andere sich auf den neuen bezogen. (Denken Sie an das kaiserliche und das metrische System unserer Zeit.) Außerdem haben nicht alle Kulturen den neuen Kalender sofort übernommen. Ein Astronom in München verwendet möglicherweise noch den Julianischen Kalender, während ein anderer in Venedig Daten verwendet, die sich auf den neuen Gregorianischen Kalender beziehen. So schlug 1583 ein Gelehrter namens Joseph Scaliger eine Abstraktion vor, die er die Julianische Periode nannte. Der Zeitraum beträgt 7.980 Jahre und läuft vom 1. Januar 4713 v. Chr. (das ist das Jahr 1) bis zum 31. Dezember 3268 n. Chr. Wir haben heute ein ähnliches System mit POSIX (oder Unix) Zeit, in der die Epoche am 1. Januar 1970 UTC beginnt und die Anzahl der seit diesem Moment verstrichenen Sekunden zählt.

Aus der Julianischen Zeit beziehen sich Astronomen bei Berechnungen in der Himmelsmechanik auf den Julianischen Tag (JD). Ein JD-Wert ist die Anzahl der Tage seit Beginn der Julischen Periode. Meeus schreibt:

Die Julianische Tageszahl oder einfacher der Julianische Tag … ist eine fortlaufende Zählung von Tagen und Bruchteilen davon ab Jahresbeginn -4712.

Warum -4712? Da Daten immer bei 0 beginnen, ist also 4713 v. Chr. das erste Jahr, dann ist -4712 für Berechnungszwecke der Beginn des Zeitraums. Zivile Daten beginnen um Mitternacht UTC. This is inconvenient for astronomers since celestial events might overlap from one day to the next. For example if you observe a comet at 23:00 hours and report on its movement until 02:00 hours you’d have to use two different dates. So the Julian Day begins at apparent solar noon UTC so that there’s a 12 hour difference from the beginning of the civil date.

So with all of that esoterica out of the way how do we calculate the JD? Here I’ll modify Meeus to show the pseudocode:

So far we’ve set up the variables for the main calculation. D is a double because it could represent a fraction of a day. For example, 4.812 is the 4th day of the month at 19:29 (7:29 PM). Here’s the algorithm for the Julian Day itself:

I can implement this in C# as a struct:

Now i can write a console app to test this implementation:

I will be using this struct in a future blog post when I dive headlong into calculating geocentric solar coordinates. That is to say, given any date and time (like the moment Sputnik 1 launched) I can calculate the position of the sun in the sky.


Determine Julian Date from Gregorian without formula - Astronomy

Portions of this entry contributed by Alejandra Mercado

The calendar currently in worldwide use for secular purposes based on a cycle of 400 years comprising 146,097 days, giving a year of average length 365.2425 days. The Gregorian calendar is a modification of the Julian calendar in which leap years are omitted in years divisible by 100 but nicht divisible by 400. By this rule, the year 1900 was nicht a leap year (1900 is divisible by 100 and nicht divisible by 400), but the year 2000 werden be a leap year (2000 is divisible by 400). The total number of days in 400 years is therefore given by

This also gives an exact number of weeks per 400-year cycle.

The Gregorian calendar was constructed to give a close approximation to the tropical year, which is the actual length of time it takes for the Earth to complete one orbit around the Sun.

The Julian calendar was switched over to the Gregorian starting in 1582, at which point the 10 day difference between the actual time of year and traditional time of year on which calendrical events occurred became intolerable. The switchover was bitterly opposed by much of the populace, who feared it was attempt by landlords to cheat then out of a week and a half's rent. However, when Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, 1582, the Catholic countries of France, Spain, Portugal, and Italy complied. Various Catholic German countries (Germany was not yet unified), Belgium, the Netherlands, and Switzerland followed suit within a year or two, and Hungary followed in 1587.

Because of the Pope's decree, the reform of the Julian calendar came to be known as the Gregorian calendar. However, the rest of Europe did not follow suit for more than a century.

The Protestant German countries adopted the Gregorian reform in 1700. By this time, the calendar trailed the seasons by 11 days. England (and the American colonies) finally followed suit in 1752, and Wednesday, September 2, 1752 was immediately followed by Thursday, September 14, 1752. This traumatic change resulted in widespread riots and the populace demanding "Give us the eleven days back!"

Sweden followed England's lead in 1753. Russia, however, did not follow suit until 1918, when January 31, 1918 was immediately followed by February 14th. In fact, however, the USSR is not on the Gregorian calendar, but on a more accurate one of their own devising. The USSR calendar is designed to more closely approximate the true length of the tropical year, thus has one additional rule for when a year is a leap year. It will remain in synchronization with the Gregorian calendar for thousands more years, by which time one or both will have probably fallen into disuse. Similarly, Iranian calendar is also a more accurate version of the Gregorian calendar (Ross).

Formulas for computing the Julian date from the Gregorian dates are given in Danby (1988) and Sinnott (1991). Let denote the integer part (sometimes known in mathematical circles as the floor function ), let Ja be the Gregorian year, M the month number (1=January, 2=February, etc.), D the day of the month, and UT the universal time. For all AD dates in the Gregorian calendar,

(1)
For Gregorian calendar dates 1901-2099, the formula can be simplified to

Sinnott, R. W. "Bits and Bytes." Sky & Telescope 82, 183, Aug. 1991.

Vardi, I. "The Gregorian Calendar." §3.5.2 in Computational Recreations in Mathematica. Reading, MA: Addison-Wesley, p. 45, 1991.


  • Keep the Julian formula for leap years in every year divisble by 4.
  • Exception is that century year is nicht a leap year unless it is divisible by 400.
  • In this system, 2000 is a leap year
  • but 1700, 1800, & 1900 are not leap years.
  • Some discontent about the "lost days", especially over payment of wages & rents ("Give us back our 11 days!"), but apparently no riots or other unreast.
  • Adopted all over continental Europe by mid 1700s

Determine Julian Date from Gregorian without formula - Astronomy

What is the Gregorian Calendar?
To explain this, we'll have to go a bit further back into history, since it succeeded the Julian Calendar, which was introduced by Julius Caesar. It was one of the early attempts to make an accurate calendar that would last for many centuries. By then, it was known that the length of the year was a bit more that 365 days. With the accuracy then achievable, some wise men noticed a shift of 1 day every 4 years. Julius Caesar introduced a calendar that included 1 extra day every 4 years to compensate for this shift, so that the seasons would not shift away from predefined dates (such as 21 March for the beginning of spring). We still know this system today: we have a leap year every 4 years, haven't we? (No, we haven't, see below).

But when time progressed and the centuries passed by, it became apparent that this calendar was not so accurate as people wanted. In the 16th century, the error had accumulated to 10 whole days! This means that spring no longer began on the 21 st of March but on the 11 th , and thus the date of Easter was no longer correct! Pope Gregory XIII then decided that a revison of the calendar was necessary. The astronomers Lilius and Clavius had computed that there had been 3 leap days too many every 400 years. This led to the following correction:

  • The leap year schedule of one leap year every 4th year was changed so that years that are a multiple of 100 are no longer a leap year unless it can be divided by 400. So 1600 was a leap year, but 1700, 1800, 1900 were not, and 2000 was again a leap year, 2100 will not be a leap year, etc. This was the necessary correction of 3 days per 400 years.
  • The error of 10 days was corrected by simply skipping 10 dates: they jumped directly from Thursday 4 October 1582 to Friday 15 October 1582.

  • Every year that can be divided by 4 is a leap year, except the century changes, which are only leap years if they are a multiple of 400.
  • Each year has 12 months as follows:

This means that the calendar has a cycle of 400 years as far as leap years are concerned. Every 400 years the same leap year schedule appears. During that cycle, 97 leap years occur (once every 4 years except 3 century changes, so 400 / 4 - 3 = 97). By pure coincidence, this happens to be just an integral number of weeks as well This means that every 400 years the Gregorian calendar repeats itself exactly on the same days of the week! This property of the Gregorian Calendar will be used for the quick calculation method to determine the day of the week for any date.

Some more interesting details of the calendar
Another thing we will use is the following remarkable property of the schedule of the months within the year. Look at the following: April + May have 61 days, June + July have 61 days, August + September have 61 days, and October + November have 61 days.

This means that from X April to X+2 June is 63 days or exactly 9 weeks, so X+2 June is the same day of the week as X April. Immer. And in the same way, by advancing 2 months and 2 days, X+4 August is also the same day of the week. Immer. Every year. And X+6 October is too, as well as X+8 December. Each and every year! Now let's take X = 4. Then we see the following: 4/4, 6/6, 8/8, 10/10, and 12/12 are all on the same day of the week! Every year. Immer. No exception. We'll call the day on which these dates fall the reference day of the given year.

Now we are nearly there! If we can find an easy way to calculate Was day of the week it is for a given year, then we have 5 reference points in the year from where we can easily count forward or backward to the given date for which we want to know the day of the week.

There's one other property of the calendar we will use. Have you ever noticed that your own birthday advances 1 day every year? And that it advances 2 days if there is a leap day in between? This 1 day advance per year has a simple cause: a year has 52 weeks plus 1 day, since 52 x 7 = 364. That one day (plus an extra day every leap year) is precisely the advance that your birthday or irgendein date makes every year.

Finding the day of the week for a given date
Now suppose we know what weekday the reference day is in the first year of a century (i.e. in year xx00, in this context centuries begin in 100-fold years - no discussion!). Then we must advance 1 day for every year thereafter plus 1 day for every 4 years in between, so we simply add the year number (only the 2 digit number within the century) plus the same 2-digit year number divided by 4 (rounded Nieder), so for the year xxyy we will add yy + [yy DIV 4]. (DIV is integer division ignoring any remainder).

We must still find the reference day of the year xx00. Therefore we will use the 400-year cycle of the Gregorian Calendar, so we only need to memorise 4 numbers for the repeating schedule of 4 centuries. And it appears to be easy.

But first, a definition is made for numbering the days of the week. Since the last step of our calculation will be the remainder of a division by 7, the days will be numbered from 0 to 6, starting with Monday and ending with Sunday. It should be obvious that adding (a multiple of) 7 to the result still yields the same day of the week, so instead of let's say day number 1 for Tuesday we can just as well use number 8 for the same day (and we will do that below, because it's easier to memorise).

Now let's determine the reference days of the xx00 years. Using any perpetual calendar available on the web (for example this one, or click on a century number in the table below), we can check 4 consecutive centuries, giving the following result:

Jahr reference day day number
1600 Dienstag 8
1700 Sonntag 6
1800 Freitag 4
1900 Wendesday 2

This schedule repeats every 400 years, so within each 4-century block the centuries have a reference day of 8, 6, 4, und 2 beziehungsweise. When you read the previous sentence just once again you'll never forget these simple numbers anymore! I told you it was easy!

  1. Represent the year using the format mask "ccyy" (where "cc" is the first 2 digits of the year and "yy" are the last 2 digits).
  2. Split this into "cc", the century offset, and "yy", the 2-digit year within the century.
  3. Determine in what century of the 4-century Gregorian cycle the value "cc" lies and take the corresponding initial reference day from the table below:

The day thus found is the reference day of the given year, so 4/4, 6/6, 8/8, 10/10, and 12/12 of the given year are all on this day of the week.

Finding other dates than 4/4, 6/6, 8/8, 10/10, or 12/12
For dates within the months numbered 4, 6, 8, 10, or 12 that should be easy! For March, May, July, September, and November the easiest way is to use the reference date of the succeeding month.

For example: suppose we want to know on what day the 15 th of March 2003 Using the method above you can find that 2003 is a "Friday year", so 4/4 is a Friday. But the 4 th of April can also be interpreted as 35 March, can't it? (This may seem odd, but for the purpose of calculation it's absolutely perfect!). And if 35 March is a Friday, then the 14 th of March is too, since that's exactly 3 weeks earlier. Then the 15 th of March is a Saturday. Bingo!

For the other months it's done in the same way.

What about January and February?
Because February hasn't got 30 days, 2/2 is not on the reference day of the year, so we must use something else. But it's not so difficult. By counting back from 4/4, we can determine that 0 (zero) March (which of course is the last day of February) is on the reference day. So that is either the 28 th or the 29 th of February. And in non-leap years February is identical to March! Through February it is easy to count back into January. In non-leap years, 0 February is on the reference day, in leap years 1 February is on the reference day. And, of course, 0 February = 31 January and 1 February = 32 January.

Putting it all together
In a more mathematical approach, we can summarise the algorithm as follows, where DIV means integral division ignoring any remainder and MOD is an operator that returns only the remainder of a division.

The rules below are so simple that you should be able to memorise them quite easily. I could, so why not you? As an aid for training your brain, I've added a calculator (using MSIE4+ features). The random date button generates a date between 1600 and 2400. When you use the calendar button, automatic switching between the Julian and Gregorian calendar is performed (the date is converted to Gregorian when you select it).

Step 1: determine the reference day of the year:

C = year DIV 100 century offset
if C in (16,20,24,etc.) then X = 8
if C in (17,21,25,etc.) then X = 6
if C in (18,22,26,etc.) then X = 4
if C in (19,23,27,etc.) then X = 2
base value for the date's century
Y = year MOD 100 2-digit year within the century
Z = Y DIV 4 Nein. of leap days since 1 March xx00
S = X + Y + Z base value + 2-digit year + leap days
D = S MOD 7 the reference day
0 = Mon, 1 = Tue, 2 = Wed, 3 = Thu, 4 = Fri, 5 = Sat, 6 = Sun

Step 2: determine the weekday of the given date:
Find the nearest date in the following table and then count back or forward to the date for which you want to know the weekday. The following dates are always on the reference day:

in "normal" years: 0 February, 0 March, 4/4, 6/6, 8/8, 10/10, and 12/12
in leap years: 1 February, 0 March, 4/4, 6/6, 8/8, 10/10, and 12/12

Now take the challenge and memorise these simple rules, then you can impress your friends and colleagues by using mental arithmetic!

Another nice website, Doomsday algorithm for Day of Week, gives the following simple rule for the odd-numbered months: for long odd months (identified by month number N), the reference day is the (N + 4) th , while for short odd months, the reference day is the (N - 4) th . The mnemonic is: long = add, short = subtract. So

3 = March (long = add), 3 + 4 = 7th is reference day
5 = May (long = add), 5 + 4 = 9th is reference day
7 = July (long = add), 7 + 4 = 11th is reference day
9 = September (short = subtract), 9 - 4 = 5th is reference day
11 = November (short = subtract), 11 - 4 = 7th is reference day

For January you could add the following: you could count that as a kurz 13 th month of the Bisherige Jahr. Then for January, the 13 - 4 = 9 th is on the reference day of the Bisherige Jahr.

In this table you can see (as is also stated on the Doomsday algorithm for Day of Week website), that 5/9 und 9/5 are on the reference day, and the same applies to 7/11 und 11/7. Maybe you find that easier to memorise.

Personally I prefer to calculate into the odd months using an even month as a starting point. Either by using the next month as described above, or by using the previous month as follows: going to the same date in the next month advances by 2 days if the starting month is short and by 3 days if the starting month is long (because 30 MOD 7 = 2 and 31 MOD 7 = 3). For example: to determine a date in May, I use 4/4 as a starting point. Going to the same date in May means advancing 2 days. In 2003 the reference day (so 4/4) is a Friday, then the 4th of May is 2 days later, e.g. a Sunday.

I think the rules to be memorised should be as brief as possible, and I simply presume that the lengths of the months are already known to everyone. Then you have to memorise only this.

Dates on the Julian calendar
As already mentioned, the Gregorian calendar was introduced on Friday 15 October 1582. One day earlier it was Thursday 4 October on the Julian calendar. Not all countries took up this calendar change immediately, some countries (like Russia and Greece) didn't change before 19xx (that's why Russia's October Revolution took place in November [24+25 October 1917 on the Julian calendar to be precise] ). Before 15 October 1582, alle dates are Julian. As described above, the difference between the two is that the Julian calendar has leap years EVERY 4 years, whilst the Gregorian calendar excludes 3 of every 4 century changes from being a leap year. Every century change that is a Julian leap year but not a Gregorian leap year increments the difference by one day. The original skip was 10 days, since then there have been 3 such century changes (1700, 1800, 1900), so currently the difference is 13 days.

  • Use the century offset C already calculated, and subtract C - 2 - (C DIV 4) days from the Gregorian date (using julianisch leap days if applicable and for January and February of the cc00 years, you must use the previous century).

Converting from a Julian date to Gregorian is done by adding the number of days instead of subtracting (also using julianisch leap days and if it jumps to or over a Julian leap day that is not a Gregorian leap day you should add one more day).

The table below lists some of the day counts to be added or subtracted for a wide range of centuries:

With a little bit of training, you should be able to do this by mental arithmetic (do not memorise the table, but the algorithm!).

For determining the weekday of a date on the Julian calendar, you only need to convert the date to Gregorian by adding the proper number of days and then use the above method to find out the day of the week of this Gregorian date. The 4-century cycle of the Gregorian calendar can simply be extrapolated to earlier centuries, so for example 800 and 1200 are also "Tuesday years", just like 1600 and 2000.

But maybe you find this easier: Julian centuries are always 100 * 365 (days per year) + 25 (leapdays) = 36525 days long, which happens to be 5218 weeks minus 1 day. So every Julian century the reference day of the cc00 year is one day earlier. For example: Julian 1300 was a Monday year, Julian 1400 was a Sunday year, Julian 1500 was a Saturday year, etc. This makes it easy to calculate the reference day of a Julian century year. It is:

Look here to memorise the simple calculation method for Julian dates.

If you have a date and you don't know whether it is on the Julian or on the Gregorian calendar, check here when various countries changed from Julian to Gregorian. Diese web page always uses 15 October 1582 as the switch date from Julian to Gregorian.

New Year's Day and the A.D. year numbering
Another thing that is important to know is the fact that New Year's Day has not always been the 1 st of January. So for correct historic surveys, you must also find out when New Year's Day was at the given time in the given country and correct the year number as applicable. See this example, which I have copied from Claus T ndering's Calendar FAQ.

Furthermore you need to know that the A.D. year numbering was not introduced until A.D. 525 by Dionysius Exiguus, before A.D. 525 they actually used a different way of counting years.

The Julian calendar was introduced in 45 BC (which mathematically should be year ) and in the first few decennia thereafter they made a stupid mistake in the leap years. Since A.D. 8 the leap years have followed the proper schedule without exception, but February might have been the last month of the year in some countries during some period.

Other interesting web sites
The internet contains lots of information about calendars and calendar calculations. This info is much better accessed via the regular search engines then by some hardcoded links. Therefore I list just the following:


I did not look at the Fliegel-Van Flandern algorithm. I tested the remaining algorithm for the test cases Danny F requested, and added the last noon the Julian calendar was observed in Rome (JD 2299160) and the first noon of the Gregorian calendar in Rome (JD 2299161). For non-integer Julian days, I only used the Meeus algorithm since that's the only one that says it supports non-integers.

The internal algorithm was correct, when you allow for considering year 0 to not exist, and it always converts to Gregorian. The Meeus algorithm is correct, when you allow for it assuming the existence of year 0, and converting to Julian for October 4, 1582 and earlier, and to Gregorian for dates after that.

The Richards algorithm required corrections. Rather than using the floor function at certain points, I used the intdiv function in place of every "/" operator, which more closely follows Richard's description of the algorithm. After these corrections, the test cases were successful. (Richards considers the year 0 to exist and always converts to Gregorian.)


Watch the video: Das Excel-Seminar #7, einen Kalender erstellen (November 2021).