Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.08.2017, 11:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от laimas Посмотреть сообщение
date.getDay() возвратит день недели: 0 - воскресенье, 6 - суббота. Сравнивайте возвращаемое с двумя этими значениями если суббота тоже не рабочий день или только булево значение возвращаемого. Соответственно от результата проверки корректируйте номер на сутки/двое.
Да он потом еще вспомнит про праздничные дни и про переносы выходных дней...
Ответить с цитированием
  #12 (permalink)  
Старый 02.08.2017, 11:13
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
Сообщение от laimas
корректируйте номер на сутки/двое.
Корректировать не получится - нужно помнить предыдущий результат, т.к там уже тоже были выходные, который нужно хранить на сервере и обновлять обязательно каждые сутки один раз.
Проще каждый раз вычислять заново - крутить цикл от стартовой даты

Последний раз редактировалось Dilettante_Pro, 02.08.2017 в 11:17.
Ответить с цитированием
  #13 (permalink)  
Старый 02.08.2017, 11:19
Новичок на форуме
Отправить личное сообщение для helish_88 Посмотреть профиль Найти все сообщения от helish_88
 
Регистрация: 01.08.2017
Сообщений: 7

Сообщение от Dilettante_Pro Посмотреть сообщение
helish_88,

В этом случае это уже не совсем простой номер. Его тогда нужно вычислять от стартовой даты с наращиванием счетчика в зависимости от дней недели
я так понял мне этого не сделаю! ладно! Спасибо всем и за это!
Ответить с цитированием
  #14 (permalink)  
Старый 02.08.2017, 11:20
Новичок на форуме
Отправить личное сообщение для helish_88 Посмотреть профиль Найти все сообщения от helish_88
 
Регистрация: 01.08.2017
Сообщений: 7

Сообщение от Dilettante_Pro Посмотреть сообщение
laimas,

Корректировать не получится - нужно помнить предыдущий результат, т.к там уже тоже были выходные, который нужно хранить на сервере и обновлять обязательно каждые сутки один раз.
Проще каждый раз вычислять заново - крутить цикл от стартовой даты
интересно
Ответить с цитированием
  #15 (permalink)  
Старый 02.08.2017, 11:43
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Вот, к примеру, с начала июля
var dateStart = new Date("07/01/2017"),
      dateEnd = new Date(),
      dateCurr = dateStart,
      n = 0;
dateCurr.setHours(0, 0, 0);
dateEnd.setHours(0, 0, 0);

do { 
    if(dateCurr.getDay() != 0 && dateCurr.getDay() != 6) n++;
    dateCurr.setDate(dateCurr.getDate() + 1);
} while(dateCurr < dateEnd);

  alert("n = " + n);
Ответить с цитированием
  #16 (permalink)  
Старый 02.08.2017, 12:00
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dilettante_Pro
Корректировать не получится - нужно помнить предыдущий результат
Я понимаю, но если не выпендриваться, то лучше номер выходных дней равен предыдущему дню иди дням, тогда и запоминать ничего не надо. Кроме того, что вообще такое "номер по порядку"? В году 365/366 дней, зная это и текущий год, имеем счетчик уже "с памятью" от 1970 для многих поколений. )
Ответить с цитированием
  #17 (permalink)  
Старый 02.08.2017, 12:07
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

laimas,
Сообщение от laimas
номер выходных дней равен предыдущему дню иди дням, тогда и запоминать ничего не надо.
Что такое - равен предыдущему? Откуда предыдущий, если ничего не запоминать или не считать от какой-то стартовой даты?
Ответить с цитированием
  #18 (permalink)  
Старый 02.08.2017, 12:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Dilettante_Pro
Откуда предыдущий, если ничего не запоминать или не считать от какой-то стартовой даты?
А зачем запоминать, мы и так знаем текущую дату, если это это суббота/воскресенье, значит нужно взять пятницу. Вообще бы сначала лучше выяснить роль этого номера, возможно все эти потуги и напрасны, и решить это можно несколько иначе, естественным путем.
Ответить с цитированием
  #19 (permalink)  
Старый 02.08.2017, 12:19
Новичок на форуме
Отправить личное сообщение для helish_88 Посмотреть профиль Найти все сообщения от helish_88
 
Регистрация: 01.08.2017
Сообщений: 7

Сообщение от Dilettante_Pro Посмотреть сообщение
Вот, к примеру, с начала июля
var dateStart = new Date("07/01/2017"),
      dateEnd = new Date(),
      dateCurr = dateStart,
      n = 0;
dateCurr.setHours(0, 0, 0);
dateEnd.setHours(0, 0, 0);

do { 
    if(dateCurr.getDay() != 0 && dateCurr.getDay() != 6) n++;
    dateCurr.setDate(dateCurr.getDate() + 1);
} while(dateCurr < dateEnd);

  alert("n = " + n);
работает же! БОЛЬШОЕ ВАМ СПАСИБО
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать текущий номер недели, или количество дней в текущем году. Hedkost Общие вопросы Javascript 12 17.11.2015 16:28
Узнать номер строки таблицы по клику antserg jQuery 4 13.11.2011 12:46
Определение номера тега. awas Internet Explorer 6 18.07.2011 17:54
узнать номер окна и номер таба cyberovskij Events/DOM/Window 8 22.05.2011 11:28
Проверка поля Номер телефона zhuzha Общие вопросы Javascript 7 12.05.2010 16:40