Advertisement
Guest User

Untitled

a guest
Dec 13th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. date startWork = "2018-01-01 09:30:00";
  2. date finisWork = "2018-01-01 18:00:00";
  3.  
  4. 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"};
  5.  
  6. string[] dayoff = {"Sat", "Sun"};
  7.  
  8. function addHours (date dt, int n)
  9. {
  10. for (int j = 0; j < n; j ++)
  11. dt = addHour (dt);
  12. return dt;
  13. }
  14.  
  15. function addHour (date dt)
  16. {
  17. return add30m (add30m (dt));
  18. }
  19.  
  20. function add30m(date dt)
  21. {
  22. dt = dt + "30m";
  23.  
  24. while (isOffDay (dt) || isOffHour(dt))
  25. dt = dt + "30m";
  26.  
  27. return dt;
  28. }
  29.  
  30. function getMinutes (date dt)
  31. {
  32. return hour(dt) * 60 + minute(dt);
  33. }
  34.  
  35. function isOffDay (date dt)
  36. {
  37. if (elementExists(holidays, startOfDay(dt)))
  38. return true;
  39.  
  40. if (elementExists(dayoff, dayOfWeek(dt)))
  41. return true;
  42.  
  43. return false;
  44. }
  45.  
  46. function isOffHour (date dt)
  47. {
  48. return getMinutes (dt) <=getMinutes(startWork) ||
  49. getMinutes (dt) > getMinutes(finisWork);
  50. }
  51.  
  52. /*
  53. //date x;
  54. //эта часть использовалась исключительно для тестирования функции на дашборд панели. для отладки.
  55. //в жизни скрипта в проме - это не участвует и не имеет смысла.
  56. date x = "2017-12-29 17:00:00";
  57. int n = 10;
  58. date y = addHours (x, n);
  59. */
  60. //runnerLog (y);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement