Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.02.2017, 13:20
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

Написать функцию для Google-таблицы
Всем привет! Народ, подскажите где можно взять алгоритм расчёта рабочего времени для Google-script? Ну или на JS?

Нужно между двумя датами подсчитать количество рабочих часов.
Рабочий день с 9:00 до 18:00 Обед с 13:00 до 14:00 с учетом того что СБ и ВСКР - выходные. Помогите пожалуйста.

Есть функция, которая к дате добавляет несколько рабочих часов, и возвращает новую дату с временем, вот она:

function getDeadlineDate(date, work) {
  
  var datework  = 0;
  var hour      = date.getHours();
  var timehour  = hour;
  var week   = getWeekDay(date);
  
  for(;;) 
  {
    if (work >= 8) 
    { 
      work -= 8;
      datework += 1;
    }
    else
    {      
      break;
    }
  }
  
  if (week == 6)
  {
    timehour = 9;
    datework += 2;
  }
  else if (week == 7) 
  {
    datework += 1;
    timehour = 9;
  }
  
  if((hour > 18) || (hour < 9)) 
  {
    timehour = 9 + work
  }
  else
  {    
    timehour += work;
  }
  
  
  if (hour < 13 && timehour >= 14 || timehour == 13)
  {
    timehour += 1;
  }
  
  if (week < 6 && ((week + datework) >= 7 || (week + datework == 6) ))
  {
    datework += 2;  
  }
  
    if (timehour >= 18)
  {
    timehour = timehour - 18 + 9;
    datework += 1;
  }
  
  var datework  = new Date(date.valueOf() + timehour*60*60*1000 + datework*24*60*60*1000 - hour*60*60*1000);
  return datework;

}


А вот как написать функцию, чтоб именно она вычисляла разницу (в рабочих часах) между 2-мя датами - не знаю пока, уже голову сломал.

Например

Первая дата: 30.01.2017 16:43
Вторая дата: 31.01.2017 11:45

Просто если разницу в часах считать, то это 19 часов и 3 минуты разница, но именно рабочих часов в них 4 часа 02 минуты.
Функция должна вернуть: 4 часа 02 минуты, ну или 4,03 часа

Помогите пожалуйста, кто может.
Ответить с цитированием
  #2 (permalink)  
Старый 03.02.2017, 14:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от fenix_63
Помогите пожалуйста, кто может.
Ты сумму не указал...
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2017, 22:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,114

fenix_63,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать скрипт для Freebitco.in ILKABU Работа 0 30.06.2016 23:37
Помогите написать функцию в Javascript jano80 Общие вопросы Javascript 7 09.02.2016 22:26
Нужна платная консультация по разработке расширений для Google Chrome Dimaz Javascript под браузер 3 10.07.2014 13:35
Помогите написать числовую функцию leny Общие вопросы Javascript 69 01.08.2012 15:26
onmouseover отрабатывает по разному для одинаковых ячеек таблицы ilshat Events/DOM/Window 2 11.02.2009 12:25