Vai al contenuto
🛠️ToolsShed

Julian Date Converter

Converti tra le date del calendario gregoriano e i numeri giuliani.

Sul Numero del Giorno Giuliano

Il Numero del Giorno Giuliano (JDN) è un conteggio continuo di giorni dal 1° gennaio 4713 a.C. Elimina la confusione dai diversi sistemi di calendario ed è ampiamente utilizzato in astronomia per i calcoli precisi di data e ora.

Informazioni sullo strumento

Il Numero di Giorno Giuliano (JDN) è un conteggio continuo di giorni dal 1º gennaio 4713 a.C., ampiamente utilizzato in astronomia, calcoli satellitari e datazione storica. A differenza del calendario gregoriano familiare, che si ripete nei mesi e negli anni, il JDN fornisce un numero unico e inequivocabile per qualsiasi data determinata—rendendolo inestimabile per osservazioni astronomiche precise e calcoli che si estendono per secoli senza confusione dovuta a riforme calendari o convenzioni di date regionali.

Per utilizzare questo convertitore, basta inserire una data gregoriana (mese, giorno e anno) per ottenere il numero di giorno giuliano corrispondente, o inserire un JDN per convertirlo di nuovo in una data di calendario standard. Lo strumento calcola istantaneamente la conversione utilizzando la formula astronomica ben consolidata, utile per chiunque lavori con registri storici, dati astronomici o software che richieda un sistema di riferimento universale della data.

Domande Frequenti

Implementazione del Codice

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.