Skip to content
Raccoon Log
Go back

날짜로 요일 계산하기

Elementary number theory
Edit page

Doomsday Algorithm

Doomsday Algorithm은 특정 날짜의 요일을 빠르게 계산하는 알고리즘이다.

요일에 다음과 같이 숫자를 대응시킨다.

Sun=0,Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat=6\text{Sun}=0,\quad \text{Mon}=1,\quad \text{Tue}=2,\quad \text{Wed}=3,\quad \text{Thu}=4,\quad \text{Fri}=5,\quad \text{Sat}=6

Doomsday

한 해에는 다음 날짜들이 모두 같은 요일을 가진다.

4/4,6/6,8/8,10/10,12/124/4,\quad 6/6,\quad 8/8,\quad 10/10,\quad 12/12 5/9,9/5,7/11,11/7,3/145/9,\quad 9/5,\quad 7/11,\quad 11/7,\quad 3/14

1월과 2월은

  • 평년: 1/3, 2/281/3,\ 2/28
  • 윤년: 1/4, 2/291/4,\ 2/29

을 사용한다.

이 날짜들의 공통 요일을 그 해의 Doomsday라고 한다.

Doomsday 계산

연도의 마지막 두 자리를 yy라고 하면

D=(⌊y12⌋+(y mod 12)+⌊y mod 124⌋+C) mod 7D= \left( \left\lfloor\frac{y}{12}\right\rfloor +(y\bmod 12) +\left\lfloor\frac{y\bmod12}{4}\right\rfloor +C \right)\bmod7

여기서 CC는 세기의 기준값이다.

1800s:5,1900s:3,2000s:2,2100s:01800s:5,\qquad 1900s:3,\qquad 2000s:2,\qquad 2100s:0

Example

2026년의 경우 y=26y=26이고, 2000년대이므로 C=2C=2이다.

⌊2612⌋+(26 mod 12)+⌊26 mod 124⌋+2\left\lfloor\frac{26}{12}\right\rfloor +(26\bmod12) +\left\lfloor\frac{26\bmod12}{4}\right\rfloor +2 =2+2+0+2=6=2+2+0+2=6

따라서 2026년의 Doomsday는

6=Saturday6=\text{Saturday}

이다.

예를 들어 9월의 Doomsday는 9/59/5이므로 2026년 9월 5일은 토요일이다.

9월 17일은 여기서 12일 뒤이고,

12≡5(mod7)12\equiv5\pmod7

이므로 토요일에서 5일 뒤인 목요일이다.

따라서

2026/9/17=Thursday\boxed{2026/9/17=\text{Thursday}}

Share this post:

Previous Post
실시간 CCTV 모니터링 시스템
Next Post
메이커페어, ges2026