回答編集履歴

1

質問をちゃんと読めていなかったので、回答を修正

2017/03/30 07:41

投稿

motuo
motuo

スコア3027

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
- これは仕様として想定通りの処理なのでしょうか??であれば仕様実現るための+1のだと思います。![イメージ説明](dd816b4b72fc116fce2cbdf429062fbd.png)
7
+ 2. 問題の```$firstDay = $weekday - $weekdayOfFirst + 1```ですが、これを置き換えると+1しない状態で、1-6で-5なりますよね。それは存在しない日付なので、ロジックで7と2日にってしまいます。(つまり日曜日)
8
+
9
+ 加算する時に月曜日を含めて加算するので、1日ズレるのです。
10
+
11
+
12
+
13
+ よって、この事象を避けるために作成者は1を加算したのだと思いますよ。
14
+
15
+