回答編集履歴
1
記述の追加
answer
CHANGED
@@ -12,8 +12,8 @@
|
|
12
12
|
' ただし、閏年の場合には、3月以降に+1する。これは①で行なっている。
|
13
13
|
d = 0
|
14
14
|
For i = LBound(monthOfDay) To UBound(monthOfDay)
|
15
|
-
dayOfYear(i) = d
|
15
|
+
dayOfYear(i) = d
|
16
|
-
d = d + monthOfDay(i)
|
16
|
+
d = d + monthOfDay(i)
|
17
17
|
Next i
|
18
18
|
|
19
19
|
' ((iYear-1)-1000)*365を一度に計算しようとするとオーバーフローになるので式を分解する。
|
@@ -21,10 +21,10 @@
|
|
21
21
|
tDay = tDay * 365
|
22
22
|
|
23
23
|
' 2行目のiMonth1-1は、dayOfYear配列の下限が0から始まっているため、
|
24
|
-
' 2行目のIIf式が、うるう年でiMonthが3月以降だったら+1にする。
|
24
|
+
' 2行目のIIf式が、うるう年でiMonthが3月以降だったら+1にする。**①**
|
25
25
|
tDay = (tDay + Int((iYear - 1) / 4) - Int(1000 / 4)) + _
|
26
|
-
(dayOfYear(iMonth - 1) + IIf(iYear Mod 4 = 0 And 3 <= iMonth, 1, 0)) + _
|
26
|
+
(dayOfYear(iMonth - 1) + IIf(iYear Mod 4 = 0 And 3 <= iMonth, 1, 0)) + _
|
27
|
-
(iDay)
|
27
|
+
(iDay)
|
28
28
|
|
29
29
|
うるう年の決定には、4で割り切れるかどうかで判断していますが、本来的には、
|
30
30
|
|