Lewati ke konten
🛠️ToolsShed

Julian Date Converter

Konversi antara tanggal kalender Gregorian dan Julian Day Numbers.

Tentang Nomor Hari Julian

Nomor Hari Julian (JDN) adalah penghitungan hari yang berkelanjutan sejak 1 Januari 4713 SM. Ini menghilangkan kebingungan dari sistem kalender yang berbeda dan banyak digunakan dalam astronomi untuk perhitungan tanggal dan waktu yang presisi.

Tentang alat ini

Nomor Hari Julian (JDN) adalah penghitungan hari yang berkelanjutan sejak 1 Januari 4713 SM, yang banyak digunakan dalam astronomi, perhitungan satelit, dan penanggalan sejarah. Tidak seperti kalender Gregorian yang akrab, yang berulang dalam bulan dan tahun, JDN menyediakan angka tunggal dan tidak ambigu untuk tanggal apa pun yang diberikan—membuatnya sangat berharga untuk pengamatan astronomi yang presisi dan perhitungan yang mencakup berabad-abad tanpa kebingungan karena reformasi kalender atau konvensi tanggal regional.

Untuk menggunakan konverter ini, cukup masukkan tanggal Gregorian (bulan, hari, dan tahun) untuk mendapatkan Nomor Hari Julian yang sesuai, atau masukkan JDN untuk mengonversinya kembali ke tanggal kalender standar. Alat ini segera menghitung konversi menggunakan formula astronomi yang sudah terbukti, bermanfaat bagi siapa pun yang bekerja dengan catatan historis, data astronomi, atau perangkat lunak yang memerlukan sistem referensi tanggal universal.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.