윤년 계산기
계산 결과
해당 연도의 일수
- 2월의 일수
- 28 일
- 다음 윤년
- 2,028
- 이전 윤년
- 2,024
4년마다 한 번, 다만 100년마다는 빼고, 다만 400년마다는 다시 넣습니다. 그래서 2024년은 윤년이고 1900년은 아니었으며 2000년은 윤년이었습니다. 이 계산기는 5년부터 9995년까지 어느 해든 이 물음에 답하고, 그 해와 그해 2월의 길이, 양옆에서 가장 가까운 윤년도 함께 알려 줍니다. 규칙 자체는 손으로도 적용할 만큼 짧습니다. 도구가 필요한 이유는 두 가지 예외이고, 그 예외가 물어오는 해가 바로 사람들이 물어보는 해입니다.
이 해들이 윤년인지, 그리고 그 판정의 근거가 되는 규칙
| 연도 | 판정 | 그 판정의 규칙 |
|---|---|---|
| 2024 | 윤년 | 4로 나누어떨어지고 100으로는 나누어떨어지지 않거나, 400으로 나누어떨어지는 해 |
| 2000 | 윤년 | 4로 나누어떨어지고 100으로는 나누어떨어지지 않거나, 400으로 나누어떨어지는 해 |
| 2026 | 평년 | 4로 나누어떨어지지 않거나, 100으로 나누어떨어지고 400으로는 나누어떨어지지 않는 해 |
| 1900 | 평년 | 4로 나누어떨어지지 않거나, 100으로 나누어떨어지고 400으로는 나누어떨어지지 않는 해 |
| 2100 | 평년 | 4로 나누어떨어지지 않거나, 100으로 나누어떨어지고 400으로는 나누어떨어지지 않는 해 |
마지막 열은 그 판정에 적용되는 규칙 전체라서, 윤년 두 줄이 거기서는 똑같이 읽힙니다. 어느 쪽 절반이 각 줄을 정했는지는 이렇습니다. 2024년과 2000년은 둘 다 윤년이지만 이유가 다릅니다. 2024년은 4로 나누어떨어지고 100으로는 나누어떨어지지 않아서이고, 2000년은 400으로 나누어떨어져서입니다. 1900년과 2100년은 서로 같은 조건에서 떨어집니다. 100으로는 나누어떨어지고 400으로는 나누어떨어지지 않습니다.
공식
윤년 = (연도 mod 4 = 0 이고 연도 mod 100 ≠ 0) 또는 연도 mod 400 = 0
- 연도
- 판정할 해. 5년부터 9995년까지
- 해당 연도의 일수
- 윤년이면 366, 아니면 365
- 2월의 일수
- 2월의 일수: 윤년이면 29, 아니면 28 — 이 규칙이 건드리는 유일한 달
- 다음 윤년
- 그 해보다 뒤에서 가장 가까운 윤년. 그 해 자신은 아닙니다
- 이전 윤년
- 그 해보다 앞에서 가장 가까운 윤년. 그 해 자신은 아닙니다
어떤 해에 윤일이 있는지 확정하거나, 일정을 짜기 전에 2월의 길이를 얻거나, 4년마다 돌아오는 행사의 다음 윤년을 찾을 때 씁니다. 흥미로운 사례는 거의 모두 세기 해입니다. 1900년은 윤년이 아니었고 2000년은 윤년이었으며 2100년은 윤년이 아닙니다. 4로 나누어떨어지는지만 보는 규칙은 이 셋을 전부 윤년이라고 부르고 그중 둘을 틀립니다.
계산 예시
2026년 — 평범한 평년
- 2026 ÷ 4 = 506.5라서 첫 번째 조건에서 규칙이 멈추고 나머지는 볼 것도 없음.
- 평년은 365일이고 2월은 28일 — 이 규칙이 길이를 바꾸는 유일한 달.
- 가장 가까운 윤년은 2024년과 2028년이고 양쪽으로 4년씩 떨어져 있음.
- 이웃 둘 중 어느 쪽도 그 해 자신이 아님: 두 출력은 입력한 해보다 엄격히 앞이거나 엄격히 뒤.
평범한 경우이고, 틀리기 어려운 쪽입니다.
2024년 — 4년 규칙만으로 충분한 해
- 2024 ÷ 4 = 506으로 딱 떨어지고 2024는 100으로 나누어떨어지지 않으므로 첫 번째 조건이 성립함.
- 따라서 그 해는 366일이고 2월은 29일.
- 가장 가까운 윤년은 2020년과 2028년 — 2024년 자신도 윤년인데도 그렇습니다.
- 400으로 나누어떨어지는지는 볼 필요도 없음: 첫 번째 조건이 이미 답을 정했기 때문.
4년마다 하루씩만 더하면 4세기마다 사흘 남짓이 남습니다. 두 세기 조건은 바로 그 어긋남을 걷어내려고 있습니다.
1900년 — 4로 나누어떨어지는데도 윤년이 아닌 해
- 1900 ÷ 4 = 475로 딱 떨어지므로 거기서 멈추는 규칙이라면 윤년이라고 부를 것.
- 그러나 1900은 100으로 나누어떨어지고 400으로는 나누어떨어지지 않으므로 두 번째 조건이 그 하루를 도로 가져감.
- 결과는 2월이 28일인 365일짜리 평년.
- 가장 가까운 윤년은 1896년과 1904년 — 4년 주기가 한 번 끊김.
규칙을 줄여 외운 사람이 반드시 틀리는 자리이고, 기억한 운율보다 계산기가 나은 이유입니다.
한계
윤년은 그레고리력의 성질이고 그레고리력 자체가 근사입니다. 계절과 견주어 대략 3,300년에 하루씩 밀리는데, 그것을 보정하는 규칙은 아직 채택되지 않았습니다. 1582년 이전의 해는 여기서 소급 그레고리력으로 다루므로 1500년은 이 판정에서 평년이 됩니다. 당시 사람들이 쓰던 율리우스력에서는 윤년이었는데도 그렇습니다. 이 도구는 한 번에 한 해만 판정하고 여러 해에 걸친 윤년 목록을 뽑지는 않습니다.
자주 묻는 질문
- 2024년은 윤년인가요?
- 윤년입니다. 2024는 4로 나누어떨어지고 100으로는 나누어떨어지지 않기 때문입니다. 366일이고 2월이 29일까지 있으며, 가장 가까운 윤년은 2020년과 2028년입니다. 4로 나누어떨어지는 해는 두 세기 조건 가운데 어느 쪽도 그 하루를 가져가지 않을 때 윤년이 됩니다.
- 1900년은 왜 윤년이 아닌가요?
- 100으로 나누어떨어지지만 400으로는 나누어떨어지지 않기 때문입니다. 4로 나누어떨어지는지만 보는 규칙은 1900년을 윤년이라고 부를 것이고, 실제로 율리우스력에서는 윤년이었습니다. 그레고리력 개혁이 세기 해에서 윤일을 걷어갔고, 400으로도 나누어떨어지는 해만 남겼습니다. 2000년이 윤일을 지킨 이유가 그것이고 2100년은 잃습니다.
- 2월은 며칠까지 있나요?
- 평년에는 28일, 윤년에는 29일이며, 이 규칙이 길이를 바꾸는 달은 2월뿐입니다. 나머지 열한 달은 31일이나 30일로 고정되어 있어서, 한 해가 365일이 되거나 366일이 되는 것은 전적으로 이 한 달 때문입니다.
- 다음 윤년은 언제인가요?
- 2028년입니다. 2026년은 평년이고, 여기서는 어느 해를 넣든 양옆의 윤년을 함께 알려 줍니다. 간격은 4년이지만 건너뛴 세기 해를 사이에 두면 8년으로 늘어납니다. 1896년에서 1904년까지가 그런 구간입니다.
- 아주 오래된 해나 아주 먼 해도 되나요?
- 5년부터 9995년까지 받습니다. 자바스크립트 Date가 표현할 수 있는 범위 안에 모든 중간 날짜를 붙들어 두기 위한 한계입니다. 1582년 이전의 답은 소급 그레고리력이고, 쓰이지도 않던 달력에 규칙을 거꾸로 적용한 값입니다. 9996년부터는 틀린 숫자를 대신 내놓지 않고 거절합니다.
참고 문헌
- The Gregorian calendar — 그레고리력의 규칙과 역사를 정리한 Calendar FAQ — Claus Tøndering, Calendar FAQ
- ECMAScript Language Specification: Numbers and Dates — 자바스크립트의 날짜 처리 규정 — Ecma International