回答編集履歴
1
レアケース対応
answer
CHANGED
@@ -43,12 +43,14 @@
|
|
43
43
|
もし日曜日スタートが良いなら1日足しましょう。
|
44
44
|
もし月曜日スタートが良いなら2日足しましょう。
|
45
45
|
|
46
|
+
今回は月曜日スタートなので+2日ですね。
|
47
|
+
|
46
48
|
[Document manipulate add](https://momentjs.com/docs/#/manipulating/add/)
|
47
49
|
|
48
50
|
```JavaScript
|
49
|
-
date.add(
|
51
|
+
date.add(2, 'days')
|
50
52
|
console.log(date.format('YYYY/MM/DD'))
|
51
|
-
// 2018/04/
|
53
|
+
// 2018/04/09
|
52
54
|
```
|
53
55
|
|
54
56
|
> 4月の何日から何日までかなどを求める
|
@@ -60,10 +62,24 @@
|
|
60
62
|
```JavaScript
|
61
63
|
var start = parseInt(date.format('DD'))
|
62
64
|
var end = start + 6
|
63
|
-
console.log(start, end) //
|
65
|
+
console.log(start, end) // 9, 16
|
64
66
|
```
|
65
67
|
|
66
|
-
従って、第二週は
|
68
|
+
従って、第二週は9〜16日です。
|
69
|
+
あれ?ちょっと待ってください、質問文の条件は日曜日が週末扱いなので1週間ずれていますね。
|
70
|
+
このように月曜日スタートかつ1日目が日曜日の場合、
|
71
|
+
Moment.jsでは日曜日を週の初めとしますので丸々1週間分ずれます。
|
72
|
+
従って7日減算して対応しましょう。
|
73
|
+
|
74
|
+
```JavaScript
|
75
|
+
var start = parseInt(date.format('DD'))
|
76
|
+
if (start > 7) {
|
77
|
+
start = start - 7
|
78
|
+
}
|
79
|
+
var end = start + 6
|
80
|
+
console.log(start, end) // 2, 8
|
81
|
+
```
|
82
|
+
|
67
83
|
※もし最終週を求める場合は週の途中で月が変わる可能性が高いので、別途月末のものを作成して日付けが超えそうなら少ない方の日数を答えとしましょう。
|
68
84
|
|
69
85
|
---
|