Есть такой скрипт:
function takeEndDateOtpusk(UsDate, countDays) {
var dateFromUserDate = new Date(UsDate);// Дата пользователя
var timeFrom1970ToUserDate = dateFromUserDate.getTime();
var ruleCountDays = countDays - 1;
var dateFrom1970ToCountDays = new Date(1000 * 60 * 60 * 24 * ruleCountDays);
var millSecToCountDays = dateFrom1970ToCountDays.getTime();
var millSecItog = timeFrom1970ToUserDate + millSecToCountDays;
var dateFromNowToCountDays = new Date(millSecItog);
var arrayWeek = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
var beginDay = arrayWeek[dateFromUserDate.getDay()];// День недели даты пользователя
var endDay = arrayWeek[dateFromNowToCountDays.getDay()];// День недели конца отпуска
var beginDate = dateFromUserDate.getDate();// Число даты пользователя
var endDate = dateFromNowToCountDays.getDate();// Число конца отпуска
var arrayMonth = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
var beginMonth = arrayMonth[dateFromUserDate.getMonth()];// Месяц даты пользователя
var endMonth = arrayMonth[dateFromNowToCountDays.getMonth()]; // Месяц конца отпуска
var beginYear = dateFromUserDate.getFullYear();// Год даты пользователя
var endYear = dateFromNowToCountDays.getFullYear();// Год конца отпуска
var beginDateToWrite = beginDay + " " + beginDate + " " + beginMonth + " " + beginYear;
document.write("Если начальная дата отпуска: <strong>" + beginDateToWrite + "</strong>, а " + "Количество дней отпуска: <strong>" + countDays + "</strong>, то последний день отпуска: <br />");
document.write("День недели: <strong>" + endDay + "</strong><br />");
document.write("Число: <strong>" + endDate + "</strong><br />");
document.write("Месяц: <strong>" + endMonth + "</strong><br />");
document.write("Год: <strong>" + endYear + "</strong><br />");
}
var UserDate = prompt("Введите дату начала отпуска в формате: ГГГГ,ММ,ДД");
var UserDays = prompt("Введите число от 1 до 52");
if (UserDays <= 0) {
alert("Такого количества дней не существует!");
}
else if (UserDays > 52) {
alert("Вы указали слишком большое количество дней!");
}
else takeEndDateOtpusk(UserDate, UserDays);
Сначала пользователь вводит начальную дату отпуска, затем вводит количество дней отпуска, скрипт выдает конечную дату отпуска. Этот скрипт можно было бы считать готовым, но в гос.учреждениях красные (праздничные) календарные дни из периода отпуска выбрасываются (т.е. праздничные дни считаются выходными, а период отпуска увеличивается на это количество дней), вот в этом то и вся проблема. Не могу придумать как выделить отпускной диапазон дат и учесть в скрипте красные календарные дни, чтобы если какое-то количество красных календарных дней попало в отпускной период, то количество (введенных пользователем) дней отпуска должно автоматически увеличится на количество красных календарных дней перед выводом конечной даты.
Буду очень признателен помощи.