Показать сообщение отдельно
  #1 (permalink)  
Старый 21.07.2016, 11:52
Новичок на форуме
Отправить личное сообщение для insider999 Посмотреть профиль Найти все сообщения от insider999
 
Регистрация: 21.07.2016
Сообщений: 5

Не получается доработать скрипт калькулятора последнего дня отпуска
Есть такой скрипт:
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);


Сначала пользователь вводит начальную дату отпуска, затем вводит количество дней отпуска, скрипт выдает конечную дату отпуска. Этот скрипт можно было бы считать готовым, но в гос.учреждениях красные (праздничные) календарные дни из периода отпуска выбрасываются (т.е. праздничные дни считаются выходными, а период отпуска увеличивается на это количество дней), вот в этом то и вся проблема. Не могу придумать как выделить отпускной диапазон дат и учесть в скрипте красные календарные дни, чтобы если какое-то количество красных календарных дней попало в отпускной период, то количество (введенных пользователем) дней отпуска должно автоматически увеличится на количество красных календарных дней перед выводом конечной даты.

Буду очень признателен помощи.
Ответить с цитированием