윤년(Leap Year)

수학노트
Pythagoras0 (토론 | 기여)님의 2020년 12월 28일 (월) 03:50 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

개요

2월 29일. 윤년일 경우에만 생기는 60번째 날입니다. (1월은 31일이므로 31+29=60)

실제 천문관측에 따르면 해가 지구둘레를 공전하는 데 근사값으로 365.25일을 사용해왔는데,

단순하게 1년을 365일로 정하면, 4년마다 0.25일씩이 남은 날들이 축적되게 되죠. (1년마다 0.25일 × 4년 =1일)

따라서 이러한 오류를 보완하기 위하여 4년마다 2월 29일을 새롭게 집어 넣게 된거죠. (\(365.25 * 4 = 365 * 4 + 1 = 1461\))


하지만 실제로 태양의 공전 주기는 약 365.2422일


오히려 365.24일에 가깝죠.


그래서 백년에 한번씩 윤년을 쉽니다. (\(365.24 * 100 = 365.25 * 100 - 1 = 36524\))


하지만 365.24일로 1년을 근사하면 또 실제 공전 주기와는 0.0022 일 정도 차이가 벌어지게됩니다.


1년에 0.0022일씩 약 400년이 지나면 0.88일 약 하루가 다시 생겨나서 400년에 한번은 다시 윤년으로 정하게 되죠. ( 0.0022 × 400 = 0.88, 약 1일)


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


정리하자면 이렇습니다.


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

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


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





블로그



메모



관련된 항목들

수학용어번역




사전 형태의 자료



리뷰논문, 에세이, 강의노트