回答編集履歴
2
コードの修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
int days(int y, int m, int d)
|
5
5
|
{
|
6
|
-
static int t[] = { 306,337,0,31,61,92,122,153,184,214,
|
6
|
+
static int t[] = { 306,337,0,31,61,92,122,153,184,214,245,275 };
|
7
7
|
return y -= m < 3, y*365 + y/4 - y/100 + y/400 + t[m-1] + d;
|
8
8
|
}
|
9
9
|
|
1
コードの修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
int days(int y, int m, int d)
|
5
5
|
{
|
6
|
-
int t[] = { 306,337,0,31,61,92,122,153,184,214,244,275 };
|
6
|
+
static int t[] = { 306,337,0,31,61,92,122,153,184,214,244,275 };
|
7
7
|
return y -= m < 3, y*365 + y/4 - y/100 + y/400 + t[m-1] + d;
|
8
8
|
}
|
9
9
|
|
@@ -15,4 +15,7 @@
|
|
15
15
|
関数 days は、0年3月1日からの通算日を求めます。
|
16
16
|
配列 t は、m月1日がその年の 3月1日から何日後かの表です。
|
17
17
|
1月と 2月は前年の 3月1日から何日後かの値になっています。
|
18
|
-
そのため、y -= m < 3 で y を前年にしています。
|
18
|
+
そのため、y -= m < 3 で y を前年にしています。
|
19
|
+
|
20
|
+
[追記]
|
21
|
+
static を追加しました。これは非常に重要なことです。
|