Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Java / JavaScript


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Java/JavaScript

Выпуск № 193
от 21.06.2006, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 248, Экспертов: 29
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное