8.2. 요일

천문학과 소수를 포함한 주기성을 띄는 연대표의 많은 문제가 정수론의 개념으로 공식화될 수 있다. 간단한 예를 들면, 주어진 날짜에 대한 요일을 결정하는 문제이다.

각 요일에 수를 대응하자 :

일요일 : 0, 월요일 : 1, 화요일 : 2,  수요일 : 3,  목요일 : 4,  금요일 : 5,  토요일 : 6

그러면, 보통 한 해는 [eqn: 365 == 1``(mod7)]이고, 윤년은 [eqn: 366 == 2``(mod7)]이다.

따라서, 평년일 때는 주어진 날짜에 대한 요일 수 W는 다음 해에는 1만큼 증가한다. 예를 들면, 어떤 해의 1월 1일이 일요일이면, 다음해에는 월요일일 것이다.

이것은 별로 어렵지 않지만, 이 간단한 패턴이 윤년에 의해 깨어진다.

매 4년마다 요일 수는 2만큼 증가하고, 더더구나 윤년의 운일이 그 해의 시작이나 끝에 더해지지 않는 어려움이 있다. 이것은 요일 수 W를 3월을 첫째달로 시작하여, 4월, 5월, 순으로 세는 것이 편리하도록 만든다.

그러나, 이것으로 문제가 완전히 없어지는 것이 아니다. 줄리어스 시저의 명령으로 도입되었던 줄리안 달력에서, 윤년을 생각하면 한 해는 정확히 [eqn: 365 {1} over {4}]일이다. 그러나, 실제로 천문학적인 한 해는 365.2422일이므로, 완전히 정확하지는 않다.

이 작은 오차가 달력에서 점진적인 계절의 변화를 야기한다. 예를 들면, 16세기에 춘분점이 3월 21일이 대신에 3월 11일이 되었다.

교황 그레고리 8세는 이 상황을 바로잡기 위해, 많은 망설임 끝에, 1582년에 카톨릭 국가들의 달력을 수정하는 그의 달력을 도입했다.

이 해에는 10월 5일 금요일을 10월 15일 금요일로 만듦으로써 열흘을 생략했다. 더더구나, 이 달력을 유지하기 위해 윤년에 대해 다음 그레고리안 규칙이 도입되었다.

세기를 나타내는 숫자가 4로 나누어지지 않는 다음과 같은 해는 윤년이 아니다.

1700, 1800, 1900, 2100, 2200, 2300,…,

그 외의 1600, 2000, 2400, …, 과 같은 해는 윤년이다.

이제 한 해의 올바른 길이에 매우 가까운 근사값을 얻었다. 그러나 아주 작긴 하지만 사소한 오차를 없애기 위해서는 4000, 8000,…과 같은 해를 윤년에서 제외시키는 방법이 제안되었다. 따라서, 이 질문은 여전히 열려 있고, 가까운 미래와 관계가 없기 때문에 우리는 우리들의 공식에서 그것을 무시한다.

이제, [eqn: C]는 세기를 나타내는 숫자이고, [eqn: Y]는 그 세기내의 해를 나타내는 숫자라고 할 때,

(8.2.1) [eqn: N=C``․`100+Y]

라는 해의 [eqn: m]번째 달에 [eqn: d]번째 날([eqn: m]은 위에서 설명한 대로 3월부터 센다)이라는 날짜가 주어졌다고 하자.

우리는 요일 수가 다음 합동식에 의해 결정된다는 것을 증명할 수 있다.

(8.2.2) [eqn: W=d+[ {1} over {3} (13m-1)]+Y+[ {1} over {4} Y]+[ {1} over {4} C]-2C```(mod`7)]

이 공식은 그레고리안 달력이 도입되기 전의 해에는 적용될 수 없다.

위 공식을 증명해보자.

처음에, (8.2.1)의 임의의 해 [eqn: N]에서 3월 1일의 요일 수를 결정하자.

임의로 잡은 시작하는 해를 1600년이라고 하고, 그것의 3월 1일의 요일 수를 [eqn: d _{1600}]이라고 나타내자. 오래된 기록을 찾아보고 그 값이 무엇인지 찾아볼 수도 있지만 그럴 필요는 없다. 왜냐하면, 다음의 과정에서 그 값을 알아낼 수 있기 때문이다.

만약 윤년이 없다면, 우리는 [eqn: N]이라는 해의 3월 1일의 요일 수 [eqn: d _{N}]은 [eqn: d _{1600}]에 1600년에서 몇 년이 지났는지를 계산하여 더하면 쉽게 알아낼 수 있다. 즉,

(8.2.3) [eqn: d _{1600} +(100C+Y-1600)```(mod`7)]

규칙적으로 매 4년마다 있는 윤년을 계산에 고려하면, 다음 식을 (8.2.3)에 더하면 된다.

(8.2.4) [eqn: [ {1} over {4} (100C+Y-1600)``]=25C-400+[ {1} over {4} Y]]

한편, 1700, 1800, 1900 등과 같은 해는 윤년이 아니므로, 그와 같은 해의 개수만큼 날 수를 빼야하는데, 1600년이 시작하는 해이므로 위 계산에서

(8.2.5) [eqn: C-16] 을 빼야한다.

그러나, 세기 수 [eqn: C]가 4로 나누어질 때, [eqn: 100C]는 여전히 윤년이므로,

(8.2.6) [eqn: [ {1} over {4} (C-16)``]=[ {1} over {4} C]-4] 를 더해야한다.

이제, (8.2.3)과 (8.2.4)를 더하고, (8.2.5)와 (8.2.6)을 빼면, 어떤 해 [eqn: N]의 3월 1일의 요일 수는 [eqn: d _{N} =d _{1600} +124C+Y-1988+[ {1} over {4} C]+[ {1} over {4} Y]```(mod7)]이다.

이것을 간단히 하면

(8.2.7) [eqn: d _{N} == d _{1600} -2C+Y+[ {1} over {4} C]+[ {1} over {4} Y]```(mod7)]

여기에 1968년 3월 1일이 금요일이라는 것을 이용하여, [eqn: d _{1968} =5],

[eqn: C=19,````[ {1} over {4} C]=4,````Y=68,````[ {1} over {4} Y]=17]를 위 식에 대입하면,

우리는 [eqn: d _{1600} =3] 이라는 것을 구할 수 있으므로, 1600년 3월 1일은 수요일이다.

이 값을 (8.2.7)에 대입하면 임의의 해 [eqn: N]의 3월 1일의 요일에 대한 다음 공식을 얻는다.

(8.2.8) [eqn: d _{N} == 3-2C+Y+[ {1} over {4} C]+[ {1} over {4} Y]```(mod7)]

두번째로, 그 해의 3월 1일의 요일수로부터 그 해의 다른 날에 대한 요일수를 결정해야만 할 것이다.

각 달에 대한 날 수가 변하므로, 수학적으로 덧셈을 표현하는데 약간의 기술이 요구된다.

3월은 31일이므로, 4월 1일의 요일 수를 얻기 위해 3을 더해야 한다.

4월은 30일이므로, 5월 1일의 요일 수를 얻기 위해 3+2일을 더해야한다.

이것을 표로 만들면 다음과 같다.

Ⅰ	3월	0		Ⅶ	9월	16
Ⅱ	4월	3		Ⅷ	10월	18
Ⅲ	5월	5		Ⅸ	11월	21
Ⅳ	6월	8		Ⅹ	12월	23
Ⅴ	7월	10		Ⅺ	1월	26
Ⅵ	8월	13		Ⅻ	2월	29

표에 있는 정수들은 불규칙적이기는 하지만, 각 달마다 평균 [eqn: {29} over {11} =2.6]… 만큼 증가한다.

처음 주기는 0이기 때문에 2.6을 빼야 하지만 이것이 완전히 들어맞지는 않기 때문에 약간의 조정을 거치면 다음 표현을 얻을 수 있다.

(8.2.9) [eqn: [2.6m-2.2]=[ {1} over {5} (13m-11)],````m=1,`2,`3,` LDOTS ,`12]

놀랍게도 이제 모든 것이 잘 들어맞는다. (8.2.9) 식에 [eqn: m=1,`2,`3 LDOTS ,`12]을 대입하여 계산해보면 우리 표의 값과 정확히 일치한다.

그러므로, [eqn: m]번째 달의 첫번째 날의 요일 수를 얻기 위하여 (8.2.9)의 식을 (8.2.8)의 3월 1일에 더해야 한다.  마지막으로, 이 달의 [eqn: d]번째 날의 수를 원하므로 [eqn: d-1]을 더해야 한다.

따라서, 우리는 (8.2.2)의 공식을 얻을 수 있다.