У меня есть два текстовых поля. В первом текстовом поле я добавил календарь с помощью jQueryUI Datepicker. Когда пользователь выбирает дату из средства выбора даты, он должен автоматически добавить 30 дней к дате и установить это значение во втором текстовом поле. У меня есть эта работа, чтобы добавить 30 дней к дате.
Однако он должен исключать выходные и праздничные дни и отображать только 30 рабочих дней. Как мне это сделать?
if ($('#cat option:selected').text() == "ABC") {
var date_billed = $('#datebilled').datepicker('getDate');
var date_overdue = new Date();
date_overdue.setDate(date_billed.getDate() + 30);
date_overdue = $.datepicker.formatDate('mm/dd/yy', date_overdue);
$('#datepd').val(date_overdue).prop('readonly', true);
}
Обновление: Я добавил функцию noWeekendsOrHolidays, чтобы отключить выходные или праздничные дни. Можно ли в любом случае использовать эту функцию для расчета и добавления рабочих дней к дате?
//holidays
var natDays = [
[7, 4, 'us']
];
function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}