コンテンツへスキップ
🛠️ToolsShed

ユリウス日変換器

グレゴリオ暦の日付とユリウス日数番号の間で変換します。

ユリウス通日について

ユリウス通日(JDN)は紀元前4713年1月1日からの連続した日数です。異なる暦システムの混乱を排除し、天文学で正確な日時計算に広く使われています。

このツールについて

ユリウス日数(JDN)は紀元前4713年1月1日から数えた連続的な日数で、天文学、衛星計算、歴史的年代測定で広く使用されています。月日が繰り返される暦法とは異なり、JDNはあらゆる日付に対して唯一の数字を提供するため、暦改革や地域による日付表記の混乱なく、数世紀にわたる精密な天文観測と計算に不可欠です。

このコンバーターを使用するには、グレゴリオ暦(月、日、年)を入力して対応するユリウス日数を取得するか、JDNを入力して標準的な暦日付に変換するだけです。ツールは確立された天文学計算式を用いて即座に変換を行い、歴史的記録、天文学データ、または普遍的な日付参照システムが必要なソフトウェアに携わる者にとって有用です。

よくある質問

コード実装

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.