2. Number of Leave Days from 24 December to 28 December should be 2 DAYS → 25 December is a public holiday (disabled date) and 26 and 27 December are weekends
Writing concise and accurate date arithmetic code in Javascript is always a challenge. There are numerous ways to go about it, but here’s an approach that achieves your desired aim:
export function datePicker2_change(event) {
let d1 = $w("#datePicker1").value;
let d2 = $w("#datePicker2").value;
let disDates = $w("#datePicker2").disabledDates;
let disDOW = $w("#datePicker2").disabledDaysOfWeek;
let leaveDays = 0, isDisabled = false;
let incrDate = d1, dow = 0;
do {
isDisabled = false;
dow = incrDate.getDay();
disDates.forEach((disDate) => {
// need to loop through array to do this comparison
if (disDate.toDateString() === incrDate.toDateString()){
isDisabled = true;
}
})
if (isDisabled === false && disDOW.indexOf(dow) === -1){
leaveDays = leaveDays + 1;
}
incrDate.setDate(incrDate.getDate() + 1);
} while (incrDate <= d2);
$w("#leaveDays").value = leaveDays;
}