Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- date startWork = "2018-01-01 09:30:00";
- date finisWork = "2018-01-01 18:00:00";
- date[] holidays = {"2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04", "2018-01-05", "2018-01-08", "2018-02-23", "2018-03-08", "2018-03-09", "2018-04-30", "2018-05-01", "2018-05-02", "2018-05-09", "2018-06-11", "2018-06-12", "2018-11-05", "2018-12-31"};
- string[] dayoff = {"Sat", "Sun"};
- function addHours (date dt, int n)
- {
- for (int j = 0; j < n; j ++)
- dt = addHour (dt);
- return dt;
- }
- function addHour (date dt)
- {
- return add30m (add30m (dt));
- }
- function add30m(date dt)
- {
- dt = dt + "30m";
- while (isOffDay (dt) || isOffHour(dt))
- dt = dt + "30m";
- return dt;
- }
- function getMinutes (date dt)
- {
- return hour(dt) * 60 + minute(dt);
- }
- function isOffDay (date dt)
- {
- if (elementExists(holidays, startOfDay(dt)))
- return true;
- if (elementExists(dayoff, dayOfWeek(dt)))
- return true;
- return false;
- }
- function isOffHour (date dt)
- {
- return getMinutes (dt) <=getMinutes(startWork) ||
- getMinutes (dt) > getMinutes(finisWork);
- }
- /*
- //date x;
- //эта часть использовалась исключительно для тестирования функции на дашборд панели. для отладки.
- //в жизни скрипта в проме - это не участвует и не имеет смысла.
- date x = "2017-12-29 17:00:00";
- int n = 10;
- date y = addHours (x, n);
- */
- //runnerLog (y);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement