Sometimes, we want to calculate number of working days between two dates in JavaScript using moment.js.
In this article, we’ll look at how to calculate number of working days between two dates in JavaScript using moment.js.
How to calculate number of working days between two dates in JavaScript using moment.js?
To calculate number of working days between two dates in JavaScript using moment.js, we can use a while loop.
For instance, we write:
const calcBusinessDays = (startDate, endDate) => {
const day = moment(startDate);
let businessDays = 0;
while (day.isSameOrBefore(endDate, 'day')) {
if (day.day() !== 0 && day.day() !== 6) {
businessDays++;
}
day.add(1, 'd');
}
return businessDays;
}
const startDate = '2022-01-01'
const endDate = '2022-01-31'
console.log(calcBusinessDays(startDate, endDate))
to define the calcBusinessDays
function that takes the startDate
and endDate
strings.
In it, we set day
to the startDate
parsed into a moment object with moment
.
Then we use a while loop that calls day.isSameOrBefore
with endDate
to run the loop until day
is the same as endDate
.
In the loop, we check if the week day isn’t 0 or 6, which are Saturday and Sunday respectively.
If the condition is true
, then we add 1 to businessDays
.
And then we add 1 day to day
with day.add(1, 'd')
.
Finally, we return businessDays
.
As a result, 21 is logged in the console.
Conclusion
To calculate number of working days between two dates in JavaScript using moment.js, we can use a while loop.