Pular para o conteúdo
🛠️ToolsShed

Julian Date Converter

Converta entre datas de calendário gregoriano e Números Julianos.

Sobre o Número do Dia Juliano

Número do Dia Juliano (JDN) é uma contagem contínua de dias desde 1º de janeiro de 4713 a.C. Elimina confusão de diferentes sistemas de calendário e é amplamente usado em astronomia para cálculos precisos de data e hora.

Sobre esta ferramenta

O Número de Dia Juliano (JDN) é uma contagem contínua de dias desde 1 de janeiro de 4713 a.C., amplamente utilizada em astronomia, cálculos de satélites e datação histórica. Diferentemente do calendário gregoriano familiar, que se repete em meses e anos, o JDN fornece um número único e inequívoco para qualquer data determinada—tornando-o inestimável para observações e cálculos astronômicos precisos que abrangem séculos sem confusão sobre reformas de calendários ou convenções de datas regionais.

Para usar este conversor, basta inserir uma data gregoriana (mês, dia e ano) para obter seu número de dia juliano correspondente, ou inserir um JDN para convertê-lo de volta a uma data de calendário padrão. A ferramenta calcula instantaneamente a conversão usando a fórmula astronômica bem estabelecida, útil para qualquer pessoa que trabalhe com registros históricos, dados astronômicos ou software que exija um sistema de referência de data universal.

Perguntas Frequentes

Implementação de Código

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.