Zum Inhalt springen
đŸ› ïžToolsShed

Julian Date Converter

Konvertiere zwischen gregorianischen Kalenderdaten und julianischen Tagesnummern.

Über die Julianische Tagesnummer

Die Julianische Tagesnummer (JDN) ist eine kontinuierliche ZĂ€hlung von Tagen seit dem 1. Januar 4713 v. Chr. Sie beseitigt Verwirrung durch unterschiedliche Kalendersysteme und wird in der Astronomie fĂŒr prĂ€zise Datums- und Zeitberechnungen verwendet.

Über dieses Tool

Die Julianische Tageszahl (JDN) ist eine kontinuierliche ZĂ€hlung der Tage seit dem 1. Januar 4713 v. Chr. und wird hĂ€ufig in der Astronomie, bei Satellitenbahn­berechnungen und der historischen Datierung verwendet. Im Gegensatz zum vertrauten gregorianischen Kalender, der sich in Monaten und Jahren wiederholt, bietet die JDN eine eindeutige Nummer fĂŒr ein beliebiges Datum—was sie fĂŒr prĂ€zise astronomische Beobachtungen und Berechnungen ĂŒber Jahrhunderte hinweg unverzichtbar macht, ohne Verwir­rung durch Kalenderreformen oder regionale Datumskol­ventionen.

Um diesen Konverter zu verwenden, geben Sie einfach ein gregorianisches Datum (Monat, Tag und Jahr) ein, um die entsprechende Julianische Tageszahl zu erhalten, oder geben Sie eine JDN ein, um sie zurĂŒck in ein Standard­kalenderdatum zu konvertieren. Das Tool berechnet die Umrechnung sofort mithilfe der etablierten astronomischen Formel und ist nĂŒtzlich fĂŒr jeden, der mit historischen Aufzeichnungen, astronomischen Daten oder Software arbeitet, die ein universelles Datums­referenzsystem erfordert.

HĂ€ufig gestellte Fragen

Code-Implementierung

def gregorian_to_jdn(year: int, month: int, day: int) -> float:
    """Convert Gregorian date to Julian Day Number (Meeus algorithm)."""
    if month <= 2:
        year -= 1
        month += 12
    A = year // 100
    B = 2 - A + A // 4
    return int(365.25 * (year + 4716)) + int(30.6001 * (month + 1)) + day + B - 1524.5

def jdn_to_gregorian(jdn: float) -> tuple[int, int, int]:
    """Convert Julian Day Number to Gregorian date (Meeus algorithm)."""
    jdn = jdn + 0.5
    Z = int(jdn)
    if Z < 2299161:
        A = Z
    else:
        alpha = int((Z - 1867216.25) / 36524.25)
        A = Z + 1 + alpha - alpha // 4
    B = A + 1524
    C = int((B - 122.1) / 365.25)
    D = int(365.25 * C)
    E = int((B - D) / 30.6001)
    day = B - D - int(30.6001 * E)
    month = E - 1 if E < 14 else E - 13
    year = C - 4716 if month > 2 else C - 4715
    return year, month, day

jdn = gregorian_to_jdn(2024, 3, 15)
print(f"2024-03-15 → JDN: {jdn}")
y, m, d = jdn_to_gregorian(jdn)
print(f"JDN {jdn} → {y}-{m:02d}-{d:02d}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.