Umrechnung zwischen julianischem Datum und gregorianischem Kalender
Das julianische Datum zählt die Tage seit dem 1. Januar 4713 v. Chr. (JD = 0) durch. Dieses Datum basiert auf dem proleptischen (vorgezogenen) julianischen Kalender, der erst später eingeführt wurde.
Der gregorianische Kalender wurde im Jahre 1582 eingeführt, um die Abweichung des julianischen Kalenders vom Sonnenjahr aufzufangen. Die Verbreitung war aber nicht einheitlich: In protestantischen Gebieten galt der julianische Kalender noch weit länger, z. T. bis ins 18. Jh. Geburtsdaten aus diesen Regionen werden oft ohne Beachtung des zu jener Zeit geltenden Kalenders angegeben.
Tabellengesteuerte Umrechnung
Unterschied | Daten |
---|---|
0 Tage | 4. Oktober 1582jul. |
10 Tage | 5. Oktoberjul. / 15. Oktober 1582greg. |
10 Tage | 28. Februarjul. / 10. März 1700greg. |
11 Tage | 29. Februarjul. / 11. März 1700greg. |
11 Tage | 1. Märzjul. / 12. März 1700greg. |
11 Tage | 28. Februarjul. / 11. März 1800greg. |
12 Tage | 29. Februarjul. / 12. März 1800greg. |
12 Tage | 1. Märzjul. / 13. März 1800greg. |
12 Tage | 28. Februarjul. / 12. März 1900greg. |
13 Tage | 29. Februarjul. / 13. März 1900greg. |
13 Tage | 1. Märzjul. / 14. März 1900greg. |
13 Tage | 15. Februarjul. / 28. Februar 2000greg. |
13 Tage | 16. Februarjul. / 29. Februar 2000greg. |
13 Tage | 17. Februarjul. / 1. März 2000greg. |
13 Tage | 28. Februarjul. / 12. März 2000greg. |
13 Tage | 29. Februarjul. / 13. März 2000greg. |
13 Tage | 1. Märzjul. / 14. März 2000greg. |
13 Tage | 28. Februarjul. / 13. März 2100greg. |
14 Tage | 29. Februarjul. / 14. März 2100greg. |
14 Tage | 1. Märzjul. / 15. März 2100greg. |
Bei der Kalenderreform 1582 wurden zehn Tage übersprungen. Diese zehn Tage bilden den Unterschied zwischen den beiden Kalendern bis zum 29. Februarjul. / 11. März 1700greg.. Im julianischen Kalender folgt ein Schalttag, im gregorianischen hat 1700 keinen Schalttag, daher beträgt der Unterschied ab 1. Märzjul. / 12. März 1700greg. elf Tage. Jeweils in den Jahren 1800, 1900, 2100, 2200, 2300, 2500 etc., vergrößert sich der Abstand zwischen dem gregorianischen und dem julianischen Datum um einen weiteren Tag. Im 20. wie auch im 21. Jahrhundert beträgt er 13 Tage. Am 8. Julijul. / 21. Juli 1969greg. betrat Neil Armstrong als erster Mensch den Mond.
Laufender Tag
In dieser Rechnung wird die Tageszählung seit Jahresanfang, beginnend mit 0, laufender Tag (LT) genannt. Für den 1. Januar ist LT=0, für den 31. Dezember LT=364 (Normaljahr) bzw. LT=365 (Schaltjahr).
Zur Umrechnung zwischen dem Datum und dem laufenden Tag siehe Berechnung des laufenden Tages.
Das dabei anzuwendende Schaltjahreskriterium lautet:
- Schaltjahre sind in der Regel die durch 4 teilbaren Jahre. Allerdings gilt:
- Die durch 100 teilbaren Jahre sind nur dann Schaltjahre, wenn sie auch durch 400 teilbar sind. (Also war z. B. 2000 ein Schaltjahr, 1900 nicht.)
- Schaltjahre sind in der Regel die durch 4 teilbaren Jahre. Allerdings gilt:
Laufendes Jahr
In dieser Rechnung wird der Anfang des gregorianischen Kalenders auf den 1. Januar des Jahres 1 vorverlegt. Dadurch beginnt der Kalender am Anfang eines 400-Jahres-Zyklus und die Rechnung vereinfacht sich. Als laufendes Jahr (LJ) wird die Anzahl Jahre ab diesem Startjahr bezeichnet. Für das Jahr 1 ist LJ=0, für das Jahr 2 ist LJ=1 usw. Das julianische Datum dieses Tages ist JD0 = 1721426.
Gregorianischer Kalender → julianisches Datum
Aus Monat (M) und Tag (T) wird unter Berücksichtigung des Schaltjahreskriteriums der laufende Tag (LT) ermittelt (siehe Umrechnung zwischen julianischem Datum und julianischem Kalender).
Dann wird aus dem Jahr (J) das laufende Jahr (LJ) berechnet:
LJ = J - 1
Zur Berechnung des julianischen Datums wird die Anzahl der vollen 400-Jahres-Zyklen (N400) seit dem Startjahr, sowie die Anzahl der vollen Jahre (R400) im letzten, unvollständigen 400-Jahres-Zyklus berechnet:
N400 = LJ/400 (ganzzahlig) R400 = Rest dieser Division
Aus R400 wird die Anzahl der vollen 100-Jahres-Zyklen (N100) des letzten 400-Jahres-Zyklus, sowie die Anzahl der vollen Jahre (R100) im letzten, unvollständigen 100-Jahres-Zyklus berechnet:
N100 = R400/100 (ganzzahlig) R100 = Rest dieser Division
Dann wird aus R100 die Anzahl der vollen 4-Jahres-Zyklen (N4) des letzten 100-Jahres-Zyklus, sowie die Anzahl der vollen Jahre (N1) im letzten, unvollständigen 4-Jahres-Zyklus berechnet:
N4 = R100/4 (ganzzahlig) N1 = Rest dieser Division
Das julianische Datum berechnet sich dann zu:
JD = JD0 + N400*146097 + N100*36524 + N4*1461 + N1*365 + LT
Die Zahlen sind die Länge der Zyklen in Tagen. 1461 (3*365+366) für den 4-Jahres-Zyklus, 36524 (24*1461 + 1460) für den 100-Jahres-Zyklus und 146097 (3*36524 + 36525) für den 400-Jahres-Zyklus.
Julianisches Datum → gregorianischer Kalender
Um ein Datum des gregorianischen Kalenders bei gegebenem julianischen Datum zu berechnen, werden zunächst die Anzahl der vollen 4-Jahres-Zyklen (N400) seit dem Startjahr und die Anzahl Tage (R400) des letzten, unvollständigen 400-Jahres-Zyklus berechnet:
N400 = (JD - JD0)/146097 (ganzzahlig) R400 = Rest dieser Division
Als Nächstes wird die Anzahl der vollen 100-Jahres-Zyklen (N100) des unvollständigen 400-Jahres-Zyklus berechnet sowie die Anzahl Tage (R100) des letzten, unvollständigen 100-Jahres-Zyklus:
N100 = R400/36524 (ganzzahlig) R100 = Rest dieser Division
Am letzten Tag des Zyklus ergibt die Rechnung N100=4 und R100=0. In diesem Fall müssen die Werte korrigiert werden:
falls (N100=4) setze N100=3 und R100=36524
Dann wird die Anzahl der vollen 4-Jahres-Zyklen (N4) des unvollständigen 100-Jahres-Zyklus berechnet, sowie die Anzahl Tage (R4) des letzten, unvollständigen 4-Jahres-Zyklus:
N4 = R100/1461 (ganzzahlig) R4 = Rest dieser Division
Schließlich wird die Anzahl der vollen Jahre (N1) des unvollständigen 4-Jahres-Zyklus berechnet, sowie der laufende Tag (LT) im letzten Jahr:
N1 = R4/365 (ganzzahlig) LT = Rest dieser Division
Am letzten Tag des Zyklus ergibt die Rechnung N1=4 und LT=0. In diesem Fall müssen die Werte korrigiert werden:
falls (N1=4) setze N1=3 und LT=365
Das laufende Jahr LJ ergibt sich zu:
LJ = 400*N400 + 100*N100 + 4*N4 + N1
Die Berechnung der Jahreszahl (J) aus LJ ergibt sich durch:
J = LJ + 1
Zur Berechnung von Monat (M) und Tag (T) aus LT siehe Umrechnung zwischen julianischem Datum und julianischem Kalender.
Beispiele
Gregorianischer Kalender in julianisches Datum
1.1.2000 GK: SK = 0 MK = -1 LT = T + 30*(M-1) + SK + MK = 1 + 30*0 - 1 = 0 LJ = J - 1 = 1999
N400= LJ/400 = 4 R400= 399 (Rest davon)
N100= R400/100 = 3 R100= 99 (Rest davon)
N4 = R100/4 = 24 N1 = 3 (Rest davon)
JD = JD0 + N400*146097 + = 1721426 + 584388 + 109572 + 35064 + 1095 + 0 --> 2451545 JD
31.12.1600 GK: SK = 1 MK = 3 LT = T + 30*(M-1) + SK + MK = 31 + 30*11 + 1 + 3 = 365 LJ = J - 1 = 1599
N400= LJ/400 = 3 R400= 399 (Rest davon)
N100= R400/100 = 3 R100= 99 (Rest davon)
N4 = R100/4 = 24 N1 = 3 (Rest davon)
JD = JD0 + N400*146097 + N100*36524 + N4*1461 + N1*365 + LT = 1721426 + 3*146097 + 109572 + 35064 + 1095 + 365 --> 2305813 JD
Julianisches Datum in gregorianischen Kalender
2451545 JD: N400= (JD - JD0)/146097 = 730119/146097 = 4 R400= 145731 (Rest davon)
N100= R400/36524 = 3 R100= 36159 (Rest davon)
N4 = R100/1461 = 24 R4 = 1095 (Rest davon)
N1 = R4/365 = 3 LT = 0 (Rest davon)
LJ = 400*N400 + 100*N100 + 4*N4 + N1 = 1999 J = LJ + 1 = 2000 M = (LT+1)/30 + 1 = 1 SK = 0 MK = -1 T = LT - 30*(M-1) - (SK + MK) = 0 - 30*0 + 1 = 1 --> 1.1.2000 GK
2305813 JD: N400= (JD - JD0)/146097 = 584387/146097 = 3 R400= 146096 (Rest davon)
N100= R400/36524 = 4 R100= 0 (Rest davon)
Korrektur, da N100=4:
N100= 3 R100= 36524
N4 = R100/1461 = 24 R4 = 1460 (Rest davon)
N1 = R4/365 = 4 LT = 0 (Rest davon)
Korrektur, da N1=4:
N1 = 3 LT = 365
LJ = 400*N400 + 100*N100 + 4*N4 + N1 = 1599 J = LJ + 1 = 1600 M = (LT+1)/30 + 1 = 13
Korrektur, da M>12:
M = 12 SK = 1 MK = 3 T = LT - 30*(M-1) - (SK + MK) = 365 - 30*11 - 4 = 31
Julianisches Datum → gregorianischer Kalender: Andere mögliche Umrechnung
Am Beispiel:
JD = 2447892,5
Man addiert 0.5 zum JD und setzt für Z den Integer-Teil und für F den Dezimalteil (Teil nach dem Komma) ein. Zu beachten ist, wenn:
Z < 2299161 dann ist:
a = Z
Z > 2299161 dann ist:
a = INT ((Z - 1867216.25) / 36524.25)
A = Z + 1 + a - INT (a / 4) B = A + 1524 C = INT ((B - 122.1) / 365.25) D = INT (365.25 * C) E = INT ((B - D) / 30.6001)
Der Tag berechnet sich aus:
T = B - D - INT (30.6001 * E) + F
Der Monat:
M = E - 1 wenn E < 14 M = E - 13 wenn E = 14 oder 15
Das Jahr:
Y = C - 4716 wenn m > 2 Y = C - 4715 wenn m = 1 oder 2
Man erhält folgende Werte:
JD = 2447892,5 + 0.5 = 2447893 Z = 2447893 F = 0
Da Z > 2299161 erhält man nun:
a = INT ((2447893 - 1867216.25) / 36524.25) = 15 A = 2447893 + 1 + 15 - INT (15 / 4) = 2447906 B = 2449430 C = 6705 D = 2449001 E = 14
Ergebnis:
T = 1 M = E - 13 = 1 denn E = 14 Y = C - 4715 = 1990 denn m = 1
Das gesuchte Datum ist der 1. Januar 1990
Wochentag bestimmen
Dies erfolgt mit Hilfe des julianischen Datums. Man berechnet zuerst für das gegebene Datum das JD, addiere dieses mit 1.5 und dividiere das Ergebnis durch 7. Der Divisionsrest (Modulo) zeigt den Wochentag an:
0 = Sonntag 1 = Montag ... 6 = Samstag
Am Beispiel: 1. Januar 1990
1. Januar 1990 = 2447892,5 2447892,5 + 1.5 = 2447894 2447894 MOD 7 = 1
Der 1. Januar 1990 war ein Montag.
Vorhandene Funktionen auf Computersystemen
Solche Umrechnungen für Zeitbereiche von einigen Jahrzehnten vor oder nach der Gegenwart (Anfang 21. Jahrhundert) werden von gängigen Computer-Betriebssystemen und Laufzeitumgebungen (z. B. als Funktion mktime()
für C++ und andere Programmiersprachen). Auf Unix-artigen Systemen lässt sich das julianische Datum berechnen, indem man die „vergangenen Sekunden seit 1.1.1970 00:00 (time_t
)“ durch 60*60*24 = 86400 dividiert und die Konstante 2440587,5 addiert. Somit müssen in Computerprogrammen solche Umrechnungen nur für weitergehende Zeitbereiche bzw. auf autonomen Mikrocontrollern (sofern auf diesen keine vollständige Laufzeitumgebung zur Verfügung steht) implementiert werden.
Weblinks
- deutschsprachiger Kalenderrechner
- Kalenderumwandlung auf Englisch (John Walker)