回答編集履歴
1
レアケース対応
test
CHANGED
@@ -88,17 +88,21 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
+
今回は月曜日スタートなので+2日ですね。
|
92
|
+
|
93
|
+
|
94
|
+
|
91
95
|
[Document manipulate add](https://momentjs.com/docs/#/manipulating/add/)
|
92
96
|
|
93
97
|
|
94
98
|
|
95
99
|
```JavaScript
|
96
100
|
|
97
|
-
date.add(
|
101
|
+
date.add(2, 'days')
|
98
102
|
|
99
103
|
console.log(date.format('YYYY/MM/DD'))
|
100
104
|
|
101
|
-
// 2018/04/0
|
105
|
+
// 2018/04/09
|
102
106
|
|
103
107
|
```
|
104
108
|
|
@@ -122,13 +126,41 @@
|
|
122
126
|
|
123
127
|
var end = start + 6
|
124
128
|
|
125
|
-
console.log(start, end) //
|
129
|
+
console.log(start, end) // 9, 16
|
126
130
|
|
127
131
|
```
|
128
132
|
|
129
133
|
|
130
134
|
|
131
|
-
従って、第二週は
|
135
|
+
従って、第二週は9〜16日です。
|
136
|
+
|
137
|
+
あれ?ちょっと待ってください、質問文の条件は日曜日が週末扱いなので1週間ずれていますね。
|
138
|
+
|
139
|
+
このように月曜日スタートかつ1日目が日曜日の場合、
|
140
|
+
|
141
|
+
Moment.jsでは日曜日を週の初めとしますので丸々1週間分ずれます。
|
142
|
+
|
143
|
+
従って7日減算して対応しましょう。
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
```JavaScript
|
148
|
+
|
149
|
+
var start = parseInt(date.format('DD'))
|
150
|
+
|
151
|
+
if (start > 7) {
|
152
|
+
|
153
|
+
start = start - 7
|
154
|
+
|
155
|
+
}
|
156
|
+
|
157
|
+
var end = start + 6
|
158
|
+
|
159
|
+
console.log(start, end) // 2, 8
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
|
132
164
|
|
133
165
|
※もし最終週を求める場合は週の途中で月が変わる可能性が高いので、別途月末のものを作成して日付けが超えそうなら少ない方の日数を答えとしましょう。
|
134
166
|
|