REQUIREMENT
Need to set the due date of a task record based on the current date and number of days required for the completion. The due date must not be weekend days and should consider only weekdays.
SOLUTION
Following is a code snippet for calculating the due date excluding the weekend days.
settingDueDateValue(days) {
try {
let currentDate = new Date();
let dueDate = new Date(currentDate.setDate(currentDate.getDate() + days));
let today = new Date();
let count = 0
let todayDay = moment.utc(today).utcOffset(720).format(“ddd”)
while (today <= dueDate) {
let todayDay = moment.utc(today).utcOffset(720).format(“ddd”)
if (todayDay == ‘Sun’ || todayDay == ‘Sat’) {
count++; // Increment count for Saturday or Sunday
}
today = new Date(today.setDate(today.getDate() + 1))
}
dueDate = new Date(dueDate.setDate(dueDate.getDate() + count));
let dueDateDay = moment.utc(dueDate).utcOffset(720).format(“ddd”)
if (dueDateDay == ‘Sun’) {
dueDate = new Date(dueDate.setDate(dueDate.getDate() + 1));
}
else if (dueDateDay == ‘Sat’) {
dueDate = new Date(dueDate.setDate(dueDate.getDate() + 2));
}
return dueDate
}
catch (err) {
log.error(“error@settingDueDateValue”, err)
}
}