2월이 29일까지 있는 해는 어떻게 정하나요?
우리가 현재 사용하는 그레고리력에서 대부분의 해는 365일이고 일부 해는 366일입니다. 2월 29일을 더하는 해를 윤년이라고 합니다. 윤년을 단순히 네 해마다 한 번이라고 설명하면 대체로 맞지만 예외를 놓칩니다. 1900년·2100년은 4로 나누어지는데도 윤년이 아닙니다.
윤년 계산은 달력의 날짜를 계절과 오래 맞추기 위한 규칙입니다. 미국 해군천문대는 4로 나누어지는 해를 윤년으로 하되, 100으로 나누어지는 해는 제외하고, 다시 400으로 나누어지는 해를 포함한다고 설명합니다. 이번 활동은 이 규칙을 컴퓨터가 정확히 적용하는지 확인합니다. 다른 달력 제도나 역사적으로 그레고리력을 채택한 날짜까지 이 규칙 하나로 설명하지는 않습니다.
참고 · 미국 해군천문대 (USNO) — United States Naval Observatory, Leap Years ↗
네 자리 숫자를 세 번 나누면 어떤 순서로 판단하나요?
첫째, 연도가 400으로 나누어지면 윤년입니다. 둘째, 400으로는 나누어지지 않고 100으로 나누어지면 평년입니다. 셋째, 앞 두 조건에 해당하지 않으면서 4로 나누어지면 윤년입니다. 어느 조건에도 해당하지 않으면 평년입니다. 예를 들어 2000년은 400으로 나누어지므로 윤년이고, 2100년은 100으로는 나누어지지만 400으로는 나누어지지 않으므로 평년입니다.
조건을 기호로 적으면 ‘(연도 % 400 = 0) 또는 [(연도 % 4 = 0) 그리고 (연도 % 100 ≠ 0)]’입니다. 여기서 %는 나눈 나머지를 구한다는 뜻입니다. 나머지가 0이면 나누어떨어진다는 뜻이지, 해당 숫자를 연도에서 빼라는 뜻이 아닙니다. 이 계산은 4의 배수라는 한 조건만 검사하는 방식과 결과가 다릅니다.
참고 · 미국 해군천문대 (USNO) — United States Naval Observatory, Leap Years ↗
2000년과 2100년을 직접 비교하면 무엇이 드러나나요?
활동 화면에서 2000년을 고르면 400으로 나눈 나머지가 0이므로 윤년이라고 표시합니다. 1900년을 고르면 100으로 나눈 나머지가 0이고 400으로 나눈 나머지는 300이므로 평년입니다. 2028년은 4로 나누어지고 100으로는 나누어지지 않아 윤년입니다. 2100년을 입력하면 첫 두 조건에 따라 평년으로 나와야 합니다.
윤년인 해와 평년인 해를 일수로 비교하면 366일과 365일입니다. 윤년에는 2월에 하루가 추가됩니다. 달력을 자동으로 만드는 인공지능 도구가 2100년 2월 29일을 만들어 낸다면 그 날짜를 사용하는 일정도 잘못 계산될 수 있습니다. 그래서 규칙의 예외를 확인해야 합니다.
참고 · 미국 해군천문대 (USNO) — United States Naval Observatory, Leap Years ↗
이 규칙은 어디까지 적용할 수 있을까요?
이 활동은 입력한 연도에 그레고리력의 윤년 규칙을 적용합니다. 입력 범위는 1583년부터 2400년까지입니다. 각 지역이 그 시기에 실제로 그레고리력을 사용했다는 뜻은 아닙니다. 역사 자료의 날짜를 해석할 때에는 해당 지역이 사용한 역법과 달력 전환 시기를 따로 확인해야 합니다.
AI가 윤년의 기본 규칙을 설명하면서 ‘4로 나누어지면 윤년’이라고만 답했다면 2100년이라는 반례로 검토할 수 있습니다. 한 예외를 찾았다고 알고리즘 전체가 정확하다고 확정할 수는 없습니다. 4·100·400의 경계가 되는 여러 해를 모두 대입해 보고, 결과가 왜 달라지는지 문장으로 설명하세요.
참고 · 미국 해군천문대 (USNO) — United States Naval Observatory, Leap Years ↗

