回答編集履歴
1
若干のリファクタリング
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
こんな感じでいかがでしょうか?
|
2
2
|
|
3
3
|
ポイントは
|
4
|
-
- 起算日を"次の平日"にしてから日数の加算を実行する。(
|
4
|
+
- 起算日を"次の平日"にしてから日数の加算を実行する。(3行目)
|
5
|
-
- 1日加算するたびに、平日でなければ"次の平日"まで移動させる。(
|
5
|
+
- 1日加算するたびに、平日でなければ"次の平日"まで移動させる。(8行目)
|
6
6
|
です。
|
7
7
|
|
8
8
|
ただし、日数の減算(`$count < 0`の場合)は考慮していません。
|
@@ -13,10 +13,8 @@
|
|
13
13
|
```php
|
14
14
|
function getNextBusinessDay($date_start, $count)
|
15
15
|
{
|
16
|
-
$date =
|
16
|
+
$date = toNextWeekday($date_start);
|
17
17
|
|
18
|
-
$date = toNextWeekday($date);
|
19
|
-
|
20
18
|
for ($i = 0; $i < $count; $i++)
|
21
19
|
{
|
22
20
|
$date = $date->add(new DateInterval('P1D'));
|