I have a date-range of 01-01-2020 to 31-12-2020 and an array of date-ranges. I want the occurrence of each date in the array vs the main range.
Eg: mainRange => 01-01-2020 to 31-12-2020
dateRanges =[
[01-01-2020, 03-01-2020],
[03-01-2020, 04-01-2020],
[03-01-2020, 06-01-2020]
];
the output should be =>
countArr = [1,1,3,2,1,1,0,0,......,0]; //array length 365
I was desparate and I had posted the same on stackoverflow too. 🥺
SOLUTION :
var range1 = new Date(2020, 0, 1),
range2 = new Date(2020, 11, 31),
dateRanges =[
[new Date(2020, 0, 1), new Date(2020, 0, 3)],
[new Date(2020, 0, 3), new Date(2020, 0, 4)],
[new Date(2020, 0, 3), new Date(2020, 0, 6)],
],
result = [];
while (range1 <= range2) {
var count = 0;
dateRanges.forEach(
function(range) {
if (range1 >= range[0] && range1 <= range[1]) {
count++;
}
}
);
result.push(count);
range1.setDate(range1.getDate() + 1); //+1 day
}
console.log(result);
Thank you 😍
Top comments (0)