4,357,242 th visitor since 2017.2.1 ( Today : 820 )
Knowledge
No. 173
Subject. 요일 계산법 - 둠스데이
Date. 2017-01-09 13:30:27.0 (121.78.49.66)
Name. swindler
Hit. 3315
File.
우연히 이런걸 계산하는 사람도 있다고 하길래 찾아봤다.

일반적으로 많이 사용하는게, '첼러의 공식'과 '둠스데이' 방식인 것 같은데,
Zeller 의 경우 암산만으로 계산하는데는 조금 어려움이 있을 듯 하여,

둠스데이 알고리즘을 외워보기로 결정했다.

계산만으로 복잡한 것을 줄이기 위해서, 몇가지를 외우는 방식이라고 이해하면 될 듯 하다.

일단 달마다 요일이 같은 날을 외워둔다. (이 날짜를 둠스데이라고 부른다.)


4월 4일, 6월 6일, 8월 8일, 10월 10일, 12월 12일 (외우기 쉬운날로 정리한듯)
5월 9일, 9월 5일 , 7월 11일, 11월 7일 (앞뒤 숫자만 바꿔서 또 외우기 쉬운쪽으로..)

1월 31일 (윤년의 경우 1월 32일, 즉 2월 1일)
2월 마지막날 (평년인 경우 28일, 윤년인 경우 28일)
3월 0일 (2월과 같은 날짜. 계산을 쉽게 하기 위해서 억지로 집어 넣은듯.)

1월 - 31일 (윤년 32일)
2월 - 마지막날 (윤년은 29일)
3월 - 0일
4월 - 4일
5월 - 9일
6월 - 6일
7월 - 11일
8월 - 8일
9월 - 5일
10월 - 10일
11월 - 7일
12월 12일

이 날짜를 기본적으로 외워두고 해당년의 둠스데이 요일을 알아낸다.

기본적으로 일요일 - 0, 월 - 1, 토 - 6 으로 생각한다.


둠스데이의 기점은 100년마나 바뀌는데,
1800 - 1899년 금요일
1900 - 1999년 수요일
2000 - 2099년 화요일
2100 - 2199년 일요일

그레고리력은 400년마다 달력이 같아지므로, 금-수-화-일 순서로 계속 돌아간다.


그리고, 마지막으로 년도로 계산을 해야 한다.

A. 년도의 마지막 2자리를 12로 나눈 몫
B. 년도의 마지막 2자리를 12로 나눈 나머지
C. B의 값을 4로 나눈 몫

ex) 1991
A. 7 (91/12)
B. 7 (91-84)
C. 1 (7/4)

세 수를 더하면 둠스데이의 요일이 나온다.
그 다음에, 알고자 하는 날짜와 둠스데이를 비교하면 된다.


ex) 1945년 8월 15일

A : 45 / 12 : 몫 3
B : 45 / 12 : 나머지 9
C : B / 4 몫 : 2

A+B+C : 14 (7일이므로 0과 같다.)

1900-1999년 둠스데이는 수요일이므로
1945년 8월 8일 (둠스데이) : 수요일

8월 15일은 7일 후이므로 수요일이 된다.


ps. 좀더 연습하면 1900-2100년 사이의 날짜들은 10초 이내에 계산해낼 수 있을듯 하다 ㅎㅎ



[바로가기 링크] : http://coolx.net/board/know/173/0






Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog