줄리안 날짜(Julian Date) 계산 공식과 그레고리력 상호 변환 기전

그레고리력 날짜를 입력하여 해당하는 줄리안 데이트(JD)와 수정 줄리안 데이트(MJD) 수치를 정밀 획득해 보세요.
일상에서 사용하는 12달 체계의 양력 달력(그레고리력)은 월마다 일수가 다르고 윤년이 불규칙하여 두 날짜 사이의 간격을 연산하거나 컴퓨터 프로그램에서 데이터베이스 쿼리를 정렬하기가 매우 까다롭습니다. 이를 극복하기 위해 천문학자들과 위성 궤도 전산망, 그리고 유통·물류 분야에서는 하루 단위의 누적 정수/소수 표기법인 **줄리안 날짜(Julian Date, JD)**를 광범위하게 사용합니다. 본 글에서는 이 변환 수식의 유도 원리를 해설합니다.
1. 그레고리력 → 줄리안 날짜(JD) 변환 공식
줄리안 날짜(JD)는 기원전 4713년 1월 1일 평균 정오(12시 UT)를 기점(0일)으로 삼아 소수점 형태로 누적해 나간 날짜 지수입니다.
그레고리력 연도 $Y$, 월 $M$, 일 $D$(시간을 소수점 일 단위로 가산)가 주어졌을 때, JD를 구하는 수학 알고리즘(Fliegel & van Flandern 공식)은 다음과 같습니다:
만약 $M \le 2$이면, 월과 연도를 다음과 같이 전년도 윤달 계산용으로 조절합니다: [ Y' = Y - 1, \quad M' = M + 12 ] $M > 2$이면: [ Y' = Y, \quad M' = M ]
여기에 그레고리력 개정일(1582년 10월 15일) 이후의 날짜에 대해 계산하는 보정 항 $A$와 $B$는 다음과 같이 도출됩니다: [ A = \lfloor Y' / 100 \rfloor ] [ B = 2 - A + \lfloor A / 4 \rfloor ]
최종 JD 산출 공식은 다음과 같습니다: [ \text{JD} = \lfloor 365.25(Y' + 4716) \rfloor + \lfloor 30.6001(M' + 1) \rfloor + D + B - 1524.5 ] (여기서 $\lfloor x \rfloor$는 내림 기호(floor)입니다. 소수점 아래를 버립니다.)
2. 수정 줄리안 날짜(MJD)와 연간 일련번호(Day of Year)
① 수정 줄리안 날짜 (Modified Julian Date, MJD)
기존 JD는 정오(12시)에 날짜가 바뀌어 오전/오후 계산 시 오차가 일어날 수 있고 숫자가 240만 대 이상으로 비대하여 다루기 힘듭니다. 이를 보완해 자정(00시) 기준으로 보정하고 숫자를 축소한 것이 MJD입니다:
[ \text{MJD} = \text{JD} - 2400000.5 ]
MJD는 전산 위성 궤도 계산, GPS 시간 동기화 규격에서 기준 상수로 즐겨 사용됩니다.
② 연간 일련번호 (Day of Year, DOY)
물류 가공식품 유통기한 마킹이나 군사 작전(Military Date) 등에서 주로 쓰이며, 1월 1일을 001로 시작해 12월 31일을 365(윤년 366)까지의 일련 정수로만 단순 나열하는 방식입니다.
[
\text{DOY} = \text{현재 날짜} - \text{해당 연도 1월 1일} + 1
]
예컨대 2026년 2월 5일은 1월 31일 분량에 5일을 더해 036으로 포맷 변환 마킹되어 제품 밑면에서 유통기한 식별용으로 활용됩니다.
[!NOTE] 줄리안 날짜 변환기를 활용하면, 복잡하게 코드를 작성하지 않아도 천문 관측 관측일, 물류 바코드 속성, 복잡한 위성 표준시 등을 그레고리력과 1대1 상호 변환할 수 있습니다.
그레고리력 날짜를 입력하여 해당하는 줄리안 데이트(JD)와 수정 줄리안 데이트(MJD) 수치를 정밀 획득해 보세요.
3. 컴퓨터공학적 활용 용도
- 에포크 타임(Epoch Time): 유닉스 시스템의 타임스탬프(Unix Timestamp, 1970-01-01 00:00:00 UTC 기점의 초 누적량)도 넓은 의미에서 전산상으로 재정의된 일련번호식 줄리안 데이트 변형판에 해당합니다.
- 천문학적 관측 동기화: 지구의 자전 속도 변동이나 윤초(Leap Second)를 정밀 연산할 때 날짜와 시간의 중첩 끊어짐 없이 연산 흐름을 유지하는 물리적 인덱스가 됩니다.
