티스토리 뷰

Math

윤년(Leap Year)

Toclear 2013.02.28 16:03

스프링노트에 써놨던 것인데, 서비스를 종료해서 다행히 관리자님이 위키로 보관해주셨더군요.


2월 29일. 윤년일 경우에만 생기는 60번째 날입니다. 

1월은 31일이므로 $31+29=60$


실제 천문관측에 따르면 해가 지구둘레를 공전하는 데 근삿값으로 365.25일을 사용해왔는데, 단순하게 1년을 365일로 정하면, 4년마다 0.25일씩이 남은 날들이 축적되게 되죠. 

1년마다 $0.25일 \times 4년 =1$일


따라서 이러한 오류를 보완하기 위하여 4년마다 2월 29일을 새롭게 집어넣게 된 거죠. 

$365.25 \times 4 = 365 \times 4 +1 = 1461$


하지만 실제로 태양의 공전 주기는 약 365.2422일. 오히려 365.24일에 가깝죠. 그래서 백 년에 한 번씩 윤년을 쉽니다. 

$365.24 \times 100 = 365.25 \times 100 -1 = 36524$


하지만 365.24일로 1년을 근사하면 또 실제 공전 주기와는 0.0022일 정도 차이가 생기죠. 1년에 0.0022일씩 약 400년이 지나면 0.88일 약 하루가 다시 생겨나서 400년에 한 번은 다시 윤년으로 정하게 되죠. 

$0.0022 \times 400 = 0.88$, 약 1일

 

더 정확하게 하기 위해서는 4000년에 한 번 빼주는 것이 옳지만, 이것은 이런저런 이유로 사용되지 않습니다.

 

정리하자면 이렇습니다.

  1. 4의 배수는 한번은 윤년으로 정한다. $ A = year \equiv 0 \bmod 4$
  2. 100의 배수는 윤년이 아니다. $B = year \not\equiv 0 \bmod 100$
  3. 하지만 400의 배수는 윤년이다. $C = year \equiv 0 \bmod 400$

$\therefore (A \cap B) \cup C$에 속하는 모든 년도가 윤년입니다!

 

Java로 표현하자면 (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) 이 true인 값이 되겠죠.

저작자 표시 비영리 동일 조건 변경 허락
신고

'Math' 카테고리의 다른 글

다항식의 정리, 용어들  (0) 2013.11.21
Some Quotes  (0) 2013.09.04
윤년(Leap Year)  (0) 2013.02.28
LaTeX을 이용한 간단한 시험지 만들기  (0) 2013.02.05
수와 연산  (0) 2012.12.31
정의? 정리?  (4) 2012.07.27
댓글
댓글쓰기 폼