Julianisches Datum

Julianisches Datum

Das julianische Datum – nicht mit dem Datum im julianischen Kalender zu verwechseln – ist eine in den Naturwissenschaften gebräuchliche Tageszählung und wird mit JD (engl. Julian Date) abgekürzt. Es gibt die Zeit in Tagen an, die seit dem 1. Januar −4712 (4713 v. Chr.) 12:00 Uhr vergangen ist. Dem Zeitpunkt Donnerstag, der 21. November 2024, 07:41:50 Uhr UT entspricht zum Beispiel das julianische Datum 2460635.82072.

Als fortlaufende Tageszählung ist das julianische Datum frei von Unregelmäßigkeiten wie Schalttagen, unterschiedlich langen Monaten usw., wie sie in den meisten Kalendern auftreten. Es wird daher vor allem in der Astronomie zur Beschreibung zeitabhängiger Größen verwendet, da mit ihm sehr leicht Zeitdifferenzen berechnet werden können.

Geschichte

Das julianische Datum wurde 1583 von dem französischen Philologen und Geschichtsschreiber Joseph Justus Scaliger vorgeschlagen. Der Name leitet sich möglicherweise von dem damals verwendeten julianischen Kalender ab. Andere Quellen berichten, Scaliger habe sein System nach seinem Vater Julius Caesar Scaliger benannt.

Die Zählung der Tage ist innerhalb eines Zeitraums von 7980 Jahren, der sogenannten Julianischen Periode, fortlaufend. Die Länge ergibt sich als kleinstes gemeinsames Vielfaches der Zykellängen der Indiktion (15 Jahre), des Mondzirkels (19 Jahre) und des Sonnenzyklus (28 Jahre). Das letzte Zusammenfallen der drei Zyklen (also das letzte Mal, dass alle drei Zyklen zugleich die Jahresnummer „1“ hatten) war im Jahr 4713 v. Chr.

Der britische Astronom John Herschel schlug 1849 in seinem Buch Outlines of Astronomy vor, das Scaliger’sche Schema zur Zeitmessung in der Astronomie zu verwenden. Dies beseitigte die Komplikationen, die bei der Verwendung verschiedener Kalender auftreten konnten. Er führte auch den gebrochenzahligen Anteil für die Uhrzeit in der westeuropäischen Zeitzone ein. Der Tageswechsel erfolgt um 12 Uhr mittags, damit während der nächtlichen Beobachtungen kein Datumswechsel stattfindet.

Astronomisches julianisches Datum

Eigenschaften

In der Astronomie wird das julianische Datum als kontinuierliche Zeitzählung verwendet, die jedem beliebigen Zeitpunkt eine eindeutige Kommazahl zuordnet, mit der Anzahl der verflossenen Tage als ganzzahligem Anteil und dem verflossenen Tagesbruchteil in den Nachkommastellen (das diskrete julianische Datum der Chronologie hingegen zählt nur ganze Tage, siehe unten). Im internationalen Sprachgebrauch wird das julianische Datum als „JD“ abgekürzt.

Die wissenschaftliche Zeitmessung benutzt mehrere verschiedene Zeitskalen nebeneinander, welche jeweils für bestimmte Zwecke besonders geeignet sind, z. B. Universal Time „UT“, Internationale Atomzeit „TAI“, Terrestrische Zeit „TT“, Baryzentrische Dynamische Zeit „TDB“ usw. Auf jeder dieser Zeitskalen kann in Form eines julianischen Datums eine kontinuierliche Zeitzählung eingeführt werden, wobei ein „Tag“ in der Regel 86.400 Sekunden der betreffenden Zeitskala entspricht. Da die einzelnen Zeitskalen sich voneinander unterscheiden, sind auch die betreffenden julianischen Daten für ein und dasselbe Ereignis verschieden. Es muss daher im Zweifelsfall angegeben werden, auf welcher Zeitskala das verwendete julianische Datum gezählt wird, z. B. „JD (UT1)“, „JD (TT)“ usw. Die Internationale Astronomische Union (IAU) empfiehlt die Verwendung der Terrestrischen Zeit als zugrunde liegender Zeitskala, mit einem aus 86.400 Sekunden (des Internationalen Einheitensystems) bestehenden Tag. Die oft anzutreffende Abkürzung „JDE“ bezeichnet ein nach Ephemeridenzeit gezähltes julianisches Datum, wird aber auch häufig für dessen Nachfolger „JD (TT)“ benutzt.

Wird ein julianisches Datum verwendet, das auf einer ungleichförmigen Zeitskala beruht (z. B. UTC), so ist bei der Berechnung von Zeitdifferenzen gegebenenfalls eine Korrektur nötig (im Beispiel UTC: Berücksichtigung von Schaltsekunden).

Das julianische Datum ist eine reine fortlaufende Tageszählung und weist keinerlei kalendarische Strukturen auf, wie z. B. eine Einteilung in Jahre, Monate usw. Es hat trotz der Namensähnlichkeit nichts mit dem julianischen Kalender zu tun. Auch das englische Julian Date leidet unter derselben Verwechslungsgefahr, weshalb z. B. Jean Meeus als Autor einschlägiger Werke stattdessen die Bezeichnung Julian Day Number oder einfach Julian Day benutzt. Im Sprachgebrauch der IAU ist jedoch unter Julian Day Number lediglich der ganzzahlige Teil des julianischen Datums zu verstehen und das volle Datum nach wie vor das Julian Date. Im Deutschen haben sich Bezeichnungen wie Julianische Tageszahl oder Julianische Tageszählung ebenfalls bisher nicht durchgesetzt.

Berechnung aus dem Kalenderdatum

Das astronomische julianische Datum kann nach dem folgenden Algorithmus aus einem im julianischen oder gregorianischen Kalender gegebenen Datum berechnet werden (das julianische Datum darf nicht negativ sein, diese Berechnung basiert auf der Umsetzung des gregorianischen Kalenders 1582, manche Staaten stellten ihren Kalender zu anderen Terminen um):

   wenn Monat > 2 dann  Y = Jahr,   M = Monat
                  sonst Y = Jahr-1, M = Monat+12
   
   D = Tag 
   
   H = Stunde/24 + Minute/1440 + Sekunde/86400
   
   wenn TT.MM.YYYY >= 15.10.1582  
        dann gregorianischer Kalender: A = Int(Y/100), B = 2 - A + Int(A/4)
        
        wenn TT.MM.YYYY <= 04.10.1582  
        dann julianischer Kalender:                    B = 0
    
   sonst Fehler: Das Datum zwischen dem 04.10.1582 und dem 15.10.1582 existiert nicht.
                 Auf den         04.10.1582 (julianischer Kalender) folgte 
                 unmittelbar der 15.10.1582 (gregorianischer Kalender).
    
   JD = Int(365,25*(Y+4716)) + Int(30,6001*(M+1)) + D + H + B - 1524,5

Die Variablen Tag, Monat, Jahr, Stunde, Minute und Sekunde enthalten die Bestandteile des zu bearbeitenden Datums, das Ergebnis wird in JD zurückgegeben. Die Funktion Int schneidet die Nachkommastellen einer Zahl ab.

Berechnung in Programmiersprachen

Da die meisten Programmiersprachen zur internen Darstellung von Datums- und Zeitwerten eine fortlaufende Nummerierung ab einem bestimmten Bezugspunkt in Tagen oder Millisekunden verwenden, kann oft durch einfache Subtraktion die Tagesdifferenz zu einem definierten Zeitpunkt bestimmt werden. Hierbei ist allerdings zu beachten dass die Untergrenze der Datumsvariablen nicht unterschritten wird (meist der 1. Januar 1900 oder der 1. Januar 1970).

Beispiel in JavaScript

    var j2000 = new Date();                              // Bezugspunkt ist der 1.1.2000 0:00 UT (entspricht JD 2451544,5)
    j2000.setUTCFullYear(2000,0,1);
    j2000.setUTCHours(0,0,0,0);
    
    var datum = new Date();
    datum.setUTCFullYear(jahr,monat-1,tag);              // Monate müssen im Wertebereich 0...11 übergeben werden
    datum.setUTCHours(stunde,minute,sekunde,millisek);
    
    var jd = 2451544.5 + (datum-j2000)/86400000;             // Zählung erfolgt in Millisekunden, 1 Tag = 86.400.000 ms

Wichtig ist die Übergabe als UTC-Wert, sonst berücksichtigt die Subtraktion eventuelle Zeitzonenunterschiede (Sommer/Winterzeit).

Beispiel in Microsoft Excel

    =2451544,5+A1-DATUM(2000;1;1)

A1 enthält einen Datums- oder einen kombinierten Datums- und Zeitwert. Achtung: In Microsoft Excel gilt 1900 als Schaltjahr, gültige Werte werden erst ab dem 1. März 1900 geliefert. Ab diesem Wert wird die Schaltjahresregel jedoch richtig implementiert.

Umrechnung eines Datums im julianischen Format in ein lesbares Datumsformat in Microsoft Excel

    =A1+DATUM(2000;1;1)-2451544,5

Erläuterung

  • Für den Zeitraum vor Einführung des gregorianischen Kalenders wird hier die Benutzung des proleptischen, nicht des historischen julianischen Kalenders vorausgesetzt. Das heißt, die Kalenderdaten werden so angegeben, als ob der julianische Kalender schon immer existiert hätte und stets völlig regelmäßig gewesen wäre. Insbesondere wird die in den Anfangsjahren des historischen julianischen Kalenders eingetretene Unregelmäßigkeit der Schaltung ignoriert.
  • Für die vorchristlichen Jahre wird außerdem die astronomische, nicht die historische Zählweise vorausgesetzt. Das vor dem Jahr 1 n. Chr. liegende Jahr wird daher als Jahr 0 gezählt (astronomisch), nicht als Jahr 1 v. Chr. (historisch), das vor diesem liegende Jahr wird als Jahr –1 und nicht als Jahr 2 v. Chr. gezählt usw. Dem Jahr 4713 v. Chr. in historischer Zählung entspricht beispielsweise das Jahr –4712 in astronomischer Zählung.
  • Vor der eigentlichen Rechnung wird eine Umnummerierung der Monats- und Jahreszahlen vorgenommen, welche Januar und Februar als den 13. und 14. Monat des Vorjahres zählt. Ein eventueller Schalttag ist damit stets der letzte Tag des so entstandenen Jahres, und es muss für das zu behandelnde Datum nicht mehr unterschieden werden, ob es im (ursprünglichen) Jahr vor oder nach dem Schalttag liegt.
    Außerdem entsteht so aus der unregelmäßigen Folge 31 28 31 30 31 30 31 31 30 31 30 31 der Monatslängen die regelmäßigere mit dem März beginnende Folge 31 30 31 30 31 31 30 31 30 31 31 28. Man beachte, dass der vor der 28 liegende Teil der Folge sich auffassen lässt als Ausschnitt aus der periodischen Folge …30 31 31 30 31 30 31 31 30 31 30 31 31 30
  • Zunächst wird angenommen, der julianische Kalender sei durchgehend vom 1. Januar –4712 bis in die Gegenwart verwendet worden. Die Anzahl der Tage in den seit dem Beginn des (umnummerierten) Jahres –4712 vollständig vergangenen Jahren ist Int(365,25×(Y-(–4712))) bzw. Int(365,25×(Y+4712)). In dieser Formel wird durch den Nachkommateil des Faktors 365,25 automatisch der alle vier Jahre zusätzlich fällige Schalttag berücksichtigt. Sie erzeugt also für Y = –4712, –4711, –4710, –4709, –4708, … die korrekte Zahlenfolge 0, 365, 730, 1095, 1461, …
    Wegen der eingangs vorgenommenen Umnummerierung der Jahreszahlen wird das Argument der Int-Funktion für Januar und Februar des (ursprünglichen) Jahres –4712 allerdings negativ. Da die Int-Funktionen verschiedener Programmiersprachen auf negative Argumente unterschiedlich reagieren, wird die Formel umformuliert, um negative Argumente zu vermeiden: Int(365,25·(Y+4716)) – 1461.
  • Dazu wird die Anzahl der Tage in den seit dem (umnummerierten) Jahresbeginn vollständig vergangenen Monaten addiert. Für M = 3, 4, 5, … ist also die Zahlenfolge 0, 31, 61, … zu erzeugen; sie entspricht den kumulierten Summen der zweiten oben angegebenen Folge der Monatslängen. Die 28 in jener Folge wird jedoch nie benötigt, da während des letzten Monats des umnummerierten Jahres der letzte Monat nie vollständig vergangen ist und im darauf folgenden Monat die hier zu berechnende Tagessumme wieder mit 0 beginnt (während Y um 1 erhöht wurde). Es genügt daher, die ebenfalls oben erwähnte streng periodische Folge zu erzeugen und einen passenden Ausschnitt daraus zu wählen. Dies geschieht durch die Formel Int(30,6001·(M+1))-122, welche für M = 3 .. 14 die gewünschte Zahlenfolge liefert. Der Faktor 30,6001 stellt einen für die spätere Reduktion auf Ganzzahlen brauchbaren Annäherungswert auf die durchschnittliche, von Schaltjahren unbeeinflusste Monatslänge der Monate März bis Januar dar. Anstelle des Faktors 30,6001 könnte in mathematischer Hinsicht der Zahlenwert 30,6 verwendet werden. Rundungsfehler bei der numerischen Rechnung mit begrenzter Stellenzahl würden im Zusammenhang mit der Int-Funktion jedoch in einigen Fällen zu fehlerhaften Ergebnissen führen. Dies wird durch die geringe Modifikation des Zahlenwerts verhindert (andere Möglichkeiten wären 30,61, 30,601 etc). Der subtrahierte Wert 122 repräsentiert die gleichfalls von Schaltjahren unbeeinflusste Anzahl der Tage in den Monaten März bis Juni, die wegen der Wahl des Ausdrucks (M+1) als Monatsfaktor abzuziehen sind. Ansonsten wäre eine kompliziertere Bestimmung der Monatsfaktoren erforderlich.
  • Ist D das Datum des Tages, so ist die Anzahl der im betreffenden Monat bereits vollständig vergangenen Tage D-1. Dazu ist der aus der Uhrzeit berechnete bereits vergangene Bruchteil H des zu behandelnden Tages zu addieren. Ein halber Tag muss davon jedoch subtrahiert werden, da der Anfangszeitpunkt der julianischen Tageszählung nicht wie beim heutigen Kalender auf Mitternacht liegt, sondern erst auf 12 Uhr mittags: D - 1 + H - 0,5 = D + H - 1,5.
  • Liegt das zu behandelnde Datum nach der (regional unterschiedlichen) Einführung des gregorianischen Kalenders, so ist das bisherige Ergebnis zu korrigieren um die Anzahl B der Tage, um die sich julianischer und gregorianischer Kalender an jenem Datum unterscheiden. Der Unterschied begann am 15. Oktober 1582 mit B = -10 Tagen und wächst in allen nicht durch 400 teilbaren Hunderterjahren um -1 Tag, ist also insgesamt gegeben durch B = –10 –A + Int(A/4) + 12 bzw. B = 2 - A + Int(A/4), wobei A = Int(Y/100).
    Die Umstellung vom julianischen auf den gregorianischen Kalender erfolgte in zahlreichen Ländern im Jahre 1582: Auf den 4. Oktober (julianisch) folgte der 15. Oktober (gregorianisch). Manche Länder stellten jedoch später um, in einigen Fällen erst im 20. Jahrhundert.
  • Gerechnet ab Beginn des ursprünglichen, nicht umnummerierten Jahres sind für Januar und Februar −4712 zusätzliche 31+29 = 60 Tage zu zählen. Der Februar −4712 war ein Schaltmonat.
  • Insgesamt ergibt sich als Anzahl der vergangenen Tage Int(365,25×(Y+4716)) – 1461 + Int(30,6001·(M+1)) – 122 + D + H – 1,5 + B + 60 = Int(365,25×(Y+4716)) + Int(30,6001·(M+1)) + D + H + B - 1524,5.

Beispiele

Kalenderdatum Julianisches Datum
1. Januar 1, 0000 UT (julianisch) 1.721.423,5000
27. Januar 333, 1200 UT (julianisch) 1.842.713,0000
4. Oktober 1582, 2400 UT (julianisch) 2.299.160,5000
15. Oktober 1582, 0000 UT (gregorianisch) 2.299.160,5000
1. Januar 1900, 0000 UT (gregorianisch) 2.415.020,5000
1. Januar 1990, 1200 UT (gregorianisch) 2.447.893,0000
1. Januar 1990, 1800 UT (gregorianisch) 2.447.893,2500
1. Januar 2000, 1200 UT (gregorianisch) 2.451.545,0000
(Standardäquinoktium)
14. Januar 2006, 1630 UT (gregorianisch)  2.453.750,1875
25. März 2010, 1630 UT (gregorianisch)  2.455.281,1875
21. November 2024, 07:41:50 UT (gregorianisch)  2.460.635,82072
  • Da die Zeitpunkte 4. Oktober 1582 24:00 Uhr und 15. Oktober 1582 00:00 Uhr in jenen Ländern zusammen fielen, die der Kalenderreform sofort folgten, haben sie dort auch dasselbe julianische Datum.

Berechnung des Kalenderdatums aus dem julianischen Datum

Das julianische bzw. gregorianische Kalenderdatum kann nach dem folgenden Algorithmus aus einem gegebenen julianischen Datum berechnet werden (das julianische Datum darf nicht negativ sein). Es wird angenommen, dass bis zum 4. Oktober 1582 der julianische Kalender und ab dem 15. Oktober 1582 der gregorianische Kalender zu verwenden ist.

   Z = Int(JD + 0,5)
   F = Frac(JD + 0,5)

   wenn Z < 2299161 dann A = Z                                     // Ergebnis julianisch

                    sonst  g = Int((Z - 1867216,25) / 36524,25)    // Ergebnis gregorianisch
                           A = Z + 1 + g - Int(g/4)

   B = A + 1524
   C = Int((B-122,1) / 365,25)
   D = Int(365,25 * C)
   E = Int((B-D) / 30,6001)

   Tag = B - D - Int(30,6001*E) + F            // Tag, inklusive Tagesbruchteil

   wenn E<14 dann  Monat = E - 1               // Monat
             sonst Monat = E - 13

   wenn Monat>2 dann  Jahr = C - 4716          // Jahr
                sonst Jahr = C - 4715

Die Variable JD enthält das zu bearbeitende julianische Datum, die Variablen Tag, Monat, Jahr die Bestandteile des resultierenden Kalenderdatums (der Tag auch den Tagesbruchteil). Die Funktion Int schneidet die Nachkommastellen einer Zahl ab. Die Funktion Frac liefert die Nachkommastellen einer Zahl.

Rundet man das julianische Datum auf eine ganze Zahl und bestimmt den Modulo 7, also den Rest einer Division durch 7, erhält man den Wochentag (mit Montag = 0 bis Sonntag = 6).

Chronologisches julianisches Datum

Das chronologische julianische Datum wird ebenfalls ab dem 1. Januar −4712 gezählt, aber nur in ganzzahligen Tagesschritten. Es entspricht dem astronomischen julianischen Datum für 12h mittags.

Berechnung

Der folgende Pseudocode berechnet aus einem Datum im gregorianischen Kalender das chronologische julianische Datum:

   y  = Jahr + (Monat − 2,85) / 12
   A  = Int(367 * y) − 1,75 * Int(y) + Tag
   B  = Int(A) − 0,75 * Int(y / 100)
   JD = Int(B) + 1721117

Die Variablen Tag, Monat und Jahr enthalten die Bestandteile des zu bearbeitenden Datums, die Variablen y, A und B sind Hilfsgrößen der Berechnung und das Ergebnis wird in JD zurückgegeben. Int steht für das Abschneiden der Nachkommastellen.

Anmerkungen

  • Die Berechnung ist stabil, wenn man beispielsweise den nichtexistenten 29. Februar 1999 eingibt, wird das gleiche julianische Datum berechnet, wie für den 1. März 1999. Durch Rückrechnung lassen sich so Datumsangaben auf Richtigkeit prüfen.
  • Ein beliebiges Datum mit einem „Nullten“ Tag des Monats (0. M. JJJJ) liefert das julianische Tagesdatum des letzten Tages im Vormonat.
  • Über den Rest der Division durch 7 der Ganzzahl des julianischen Datums + 0,5 kann man den Wochentag ermitteln. Rest 0 ist Montag, Rest 1 ist Dienstag usw.; deshalb war der 4. Oktober 1582 ein Donnerstag, und der 15. Oktober 1582 ein Freitag (der erste Tag der Geltung des gregorianischen Kalenders).

Beispiele

Gregorianischer Kalender Julianisches Datum
15. Oktober 1582 2299161
1. Januar 1583 2299239
1. Januar 1990 2447893
1. Januar 2000 2451545
21. November 2024 2460636

Weitere julianische Daten

  • Im Internationalen Geophysikalischen Jahr (1957/58) wurde von der Smithsonian Institution ein Modifiziertes Julianisches Datum (MJD) eingeführt, mit Nullpunkt am 17. November 1858 0:00 Uhr UT: MJD = JD(UT) – 2.400.000,5. Damit hat es deutlich weniger Vorkommastellen als das julianische Datum. Das MJD wird hauptsächlich in der Geodäsie, Geophysik, Metrologie und Raumfahrt, seltener auch in der Astronomie verwendet.
  • Dubliner julianisches Datum (DJD): Eine weitere Version eines julianischen Datums beginnt die Zählung der Tage mit dem Beginn des Jahres 1900 (z. B. in Microsoft Excel, Lotus-123, Embarcadero Delphi) oder dem des Jahres 1904 (Microsoft Excel für Mac OS Classic). Da die Zählung am 1. Januar nicht mit der Null, sondern mit dem Wert „1“ beginnt, ist der korrekte Nullpunkt der Zählung der 31. Dezember 1899 0:00 Uhr. Für zusätzliche Verwirrung sorgt, dass einige Programme das Jahr 1900 fälschlicherweise als Schaltjahr ansehen und daher für Tage vor dem 1. März 1900 inkonsistente Daten liefern (Nullpunkt ist dann der 30. Dezember 1899, 0:00 Uhr).
  • Das ANSI-Datum legt den 1. Januar 1601 als Tag „1“ fest. Es dient als Ursprung der Datumszählung in der Programmiersprache COBOL.

Siehe auch

  • Liste der Kalendersysteme
  • Kalender, Zeitrechnung, Unixzeit
  • Umrechnung zwischen julianischem Datum und gregorianischem Kalender
  • Umrechnung zwischen julianischem Datum und julianischem Kalender

Quellen

  • J. Meeus: Astronomical Algorithms. Willmann-Bell, Richmond 2000 (2. Aufl., 2. Druck), ISBN 0-943396-61-1 (Berechnung des Kalenderdatums aus dem astronomischen JD: S. 63; Berechnung des astronomischen JD: S. 60;)

Weblinks