Всем привет! Народ, подскажите где можно взять алгоритм расчёта рабочего времени для 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 часа
Помогите пожалуйста, кто может.