|
各月の1日目の剰余を考えると、
・3月と11月
・4月と7月
・9月と12月
は、曜日は毎年同じです。
それぞれの日数間(等差数列、63日(7日×9週))を考えると、
・4/4, 6/6, 8/8, 10/10, 12/12 の曜日は毎年同じです。※1
・3/3, 5/5, 7/7 の曜日は毎年同じです。
・9/9, 11/11 の曜日は毎年同じです。
同様に、
・5/9, 9/5, 7/11, 11/7 の曜日は※1と毎年同じです。
3月以降の万年カレンダーをつくり確認しました。
DATA 31,30,31,30,31,31,30,31,30,31 !3月,4月,5月,…
!!DATA 31,28,31,30,31,30,31,31,30,31,30,31 !平年
!!DATA 31,29,31,30,31,30,31,31,30,31,30,31 !うるう年
LET S=0
FOR M=3 TO 12 !各月
!!FOR M=1 TO 12 !各月
READ A !日数を得る
FOR i=1 TO MOD(S,7) !開始位置を前の月に合わせる
PRINT " ";
NEXT i
FOR D=1 TO A !日にちを記入する
PRINT USING "###": D;
IF MOD(S+D,7)=0 THEN
IF D<=7 THEN PRINT USING " ##月": M ELSE PRINT !週単位
END IF
NEXT D
PRINT
LET S=S+A
NEXT M
!!PRINT S !検算
END
実行結果
1 2 3 4 5 6 7 3月
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
1 2 3 4 4月
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
1 2 5月
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
1 2 3 4 5 6 6月
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
1 2 3 4 7月
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
1 8月
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
1 2 3 4 5 9月
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
1 2 3 10月
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
1 2 3 4 5 6 7 11月
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
1 2 3 4 5 12月
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
|
|