回答編集履歴
1
質問をちゃんと読めていなかったので、回答を修正
test
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
-
この処理を実行した結果が下記の通り、**18日**となってしまっていますが、実際には2017年の第3月曜日は17日ですね。。。
|
1
|
+
この処理を実行した結果が下記の通り、**18日**となってしまっていますが、実際には2017年の第3月曜日は17日ですね。。。渡す引数は$weekdayが1で良いですよね。
|
2
2
|
|
3
|
+
求めたい最初の月曜日の日付を求める事を考えると…
|
4
|
+
|
5
|
+
1. $weekdayOfFirstは6(7月の最初の曜日は土曜日なので)が入ります。
|
6
|
+
|
3
|
-
これは
|
7
|
+
2. 問題の```$firstDay = $weekday - $weekdayOfFirst + 1```ですが、これを置き換えると+1しない状態では、1-6で-5となりますよね。それは存在しない日付なので、後のロジックで7を足すと2日になってしまいます。(つまり日曜日)
|
8
|
+
|
9
|
+
加算する時に月曜日を含めて加算するので、1日ズレるのです。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
よって、この事象を避けるために作成者は1を加算したのだと思いますよ。
|
14
|
+
|
15
|
+
|