Skip to content

Commit 2bc646f

Browse files
committed
[date_range.js, #131] fix date_range bug
1 parent 1ebc7c6 commit 2bc646f

1 file changed

Lines changed: 59 additions & 52 deletions

File tree

danfojs-node/dist/core/date_range.js

Lines changed: 59 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class date_range {
3737
this.freq = "D";
3838
}
3939

40-
this.freq_list = ["M", "D", "s", "H", "m", "Y"];
40+
this.freq_list = [ "M", "D", "s", "H", "m", "Y" ];
4141

4242
if (this.freq.length == 1) {
4343
if (!this.freq_list.includes(this.freq)) {
@@ -89,7 +89,7 @@ class date_range {
8989
range_array = this.month_range(range_array);
9090
}
9191

92-
let date_range = range_array.map(x => {
92+
let date_range = range_array.map((x) => {
9393
return this.set_dateProps(start_date, this.freq, x);
9494
});
9595
date_range[date_range.length - 1] = end_date;
@@ -110,7 +110,7 @@ class date_range {
110110
range_array = this.offset_count(range_array, offset);
111111
}
112112

113-
let date_range = range_array.map(x => {
113+
let date_range = range_array.map((x) => {
114114
return this.set_dateProps(start_date, this.freq, x);
115115
});
116116
let date_string = this.toLocalString(date_range);
@@ -126,7 +126,7 @@ class date_range {
126126
range_array = this.offset_count(range_array, offset);
127127
}
128128

129-
let date_range = range_array.map(x => {
129+
let date_range = range_array.map((x) => {
130130
return this.set_dateProps(end_date, this.freq, x);
131131
});
132132
let date_string = this.toLocalString(date_range);
@@ -138,29 +138,29 @@ class date_range {
138138
let rslt = null;
139139

140140
switch (ftype) {
141-
case "M":
142-
rslt = date.getMonth();
143-
break;
141+
case "M":
142+
rslt = date.getMonth();
143+
break;
144144

145-
case "Y":
146-
rslt = date.getFullYear();
147-
break;
145+
case "Y":
146+
rslt = date.getFullYear();
147+
break;
148148

149-
case "s":
150-
rslt = date.getSeconds();
151-
break;
149+
case "s":
150+
rslt = date.getSeconds();
151+
break;
152152

153-
case "D":
154-
rslt = date.getDate();
155-
break;
153+
case "D":
154+
rslt = date.getDate();
155+
break;
156156

157-
case "H":
158-
rslt = date.getHours();
159-
break;
157+
case "H":
158+
rslt = date.getHours();
159+
break;
160160

161-
case "m":
162-
rslt = date.getMinutes();
163-
break;
161+
case "m":
162+
rslt = date.getMinutes();
163+
break;
164164
}
165165

166166
return rslt;
@@ -180,42 +180,42 @@ class date_range {
180180
let new_date = new Date(date.valueOf());
181181

182182
switch (ftype) {
183-
case "M":
184-
if (val.length == 2) {
185-
new_date.setYear(new_date.getFullYear() + val[0]);
186-
new_date.setMonth(parseInt(val[1]));
187-
} else {
188-
new_date.setMonth(val);
189-
}
183+
case "M":
184+
if (val.length == 2) {
185+
new_date.setYear(new_date.getFullYear() + val[0]);
186+
new_date.setMonth(parseInt(val[1]));
187+
} else {
188+
new_date.setMonth(val);
189+
}
190190

191-
break;
191+
break;
192192

193-
case "Y":
194-
new_date.setYear(val);
195-
break;
193+
case "Y":
194+
new_date.setYear(val);
195+
break;
196196

197-
case "s":
198-
new_date.setSeconds(val);
199-
break;
197+
case "s":
198+
new_date.setSeconds(val);
199+
break;
200200

201-
case "D":
202-
new_date.setDate(val);
203-
break;
201+
case "D":
202+
new_date.setDate(val);
203+
break;
204204

205-
case "H":
206-
new_date.setHours(val);
207-
break;
205+
case "H":
206+
new_date.setHours(val);
207+
break;
208208

209-
case "m":
210-
new_date.setMinutes(val);
211-
break;
209+
case "m":
210+
new_date.setMinutes(val);
211+
break;
212212
}
213213

214214
return new_date;
215215
}
216216

217217
toLocalString(d_array) {
218-
let r_array = d_array.map(x => {
218+
let r_array = d_array.map((x) => {
219219
return x.toLocaleString();
220220
});
221221
return r_array;
@@ -231,18 +231,18 @@ class date_range {
231231
month_range(range) {
232232
let minus = null;
233233
let y_val = 0;
234-
let d_range = range.map(x => {
234+
let d_range = range.map((x) => {
235235
if (x > 11) {
236236
if (x % 12 == 0) {
237237
minus = x;
238238
y_val = x / 12;
239-
return [y_val, x - minus];
239+
return [ y_val, x - minus ];
240240
} else {
241-
return [y_val, x - minus];
241+
return [ y_val, x - minus ];
242242
}
243243
}
244244

245-
return [y_val, x];
245+
return [ y_val, x ];
246246
});
247247
return d_range;
248248
}
@@ -257,7 +257,14 @@ class date_range {
257257

258258
for (let i = 0; i < m_range.length; i++) {
259259
let val = m_range[i];
260-
let d_date = new Date(start_date.getFullYear() + val[0], val[1], 0).getDate();
260+
let d_date = null;
261+
262+
if (i === m_range.length - 1) {
263+
d_date = new Date(start_date.getFullYear() + val[0], val[1], end_date.getDate()).getDate();
264+
} else {
265+
d_date = new Date(start_date.getFullYear() + val[0], val[1], 0).getDate();
266+
}
267+
261268
sum += d_date;
262269
}
263270

@@ -266,4 +273,4 @@ class date_range {
266273

267274
}
268275

269-
exports.date_range = date_range;
276+
exports.date_range = date_range;

0 commit comments

Comments
 (0)