Вопрос № 46391: Доброе время суток!
Помогите плз со следущей программой на Jscript!
На странице 3 текстовіх поля и одну кнопку
в первые два текст поля вводятся даты
при нажатии кнопки в 3 поле выводится кол-во рабочих дней между етими двумя датами<br...
Вопрос № 46.391
Доброе время суток!
Помогите плз со следущей программой на Jscript!
На странице 3 текстовіх поля и одну кнопку
в первые два текст поля вводятся даты
при нажатии кнопки в 3 поле выводится кол-во рабочих дней между етими двумя датами
(субота и воскрес -- выходные)
Есть след прог-ма
Приложение:
Отправлен: 16.06.2006, 10:41
Вопрос задал: sexy (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: wils0n
Здравствуйте, sexy!
Оговорюсь сразу, что расчёты велись, включая указанные даты. То есть количество дней между первым января и первым января
одного и того же года считается 1 - первое января. Соответственно между первым января и вторым января - два дня.
Вставьте это на место вашего скрипта
<SCRIPT Language="JavaScript">
function TimeInterval()
{
var Date_begin = new Date(document.timeForm.fld1.value);
var Date_end = new Date(document.timeForm.fld2.value);
// если первая дата меньше второй просто поменям их местами.
if ( Date_end < Date_begin ) {
temp = Date_begin;
Date_begin = Date_end;
Date_end = temp;
}
var Interval=Date_end - Date_begin;
number_of_days = Interval/1000/60/60/24 + 1;
first = Date_begin.getDay(); // день недели первой даты 0 - вс, 1- пн, 2- вт....
second = Date_end.getDay(Date_end); // день недели второй даты
/* здесь мы считаем сколько полных недель, который начинаются с
воскресенья и заканчиваются субботой (из-за того, что в
предсталении javascript начало недели - всокресенье) влезают между
этими датами. Если даты находятся в одной неделе, то значение
fullweeks будет -1, но это нормально. Потом это компенсируется */
fullweeks = ( number_of_days - 8 + first - second ) / 7;
/* вычитаем выходные из этих полных недель
по сути, если дни находятся внутри одной недели, то выходные на этом
месте добавятся. Но ничего страшного - потом мы их снова вычтем */
number_of_days = number_of_days - fullweeks * 2;
// вычитаем выходные на тех неделях, в которых находятся наши даты
if ( first > 0 ) { number_of_days--; }
if ( first == 0 ) { number_of_days = number_of_days - 2; }
if ( second < 6 ) { number_of_days--; }
if ( second == 6 ) { number_of_days = number_of_days - 2; }
document.timeForm.fld3.value = number_of_days;
}
</SCRIPT>
--------- Life is like a box with chocolate. You never know what you're gonna get. (c) Forrest
Gump's mom
Ответ отправил: wils0n (статус: 5-ый
класс)
Ответ отправлен: 16.06.2006, 13:10 Оценка за ответ: 5