Расчет свободных промежутков времени

1. Bovori 2 18.04.17 14:12 Сейчас в теме
Здравствуйте, уважаемые участники. Помогите с расчетом временных промежутков. Имеется Входная таблица занятых промежутков работы смен с временем начала/окончания обеда и работы смен, нужно получить на ее основании выходную таблицу свободных промежутков. Пример на прилагаемой картинке
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
14. herfis 499 18.04.17 16:23 Сейчас в теме
Тогда просто добавляешь время обеда как еще один рабочий промежуток (как будто они работали в это время) и возвращаешься к (7)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Octopus 337 18.04.17 15:08 Сейчас в теме
Таки в чем проблема? Алгоритм вроде предельно понятен.
3. Bovori 2 18.04.17 15:27 Сейчас в теме
(2)Да вот что-то ни черта не получается... конец дня, мозги уже на исходе...
4. herfis 499 18.04.17 15:29 Сейчас в теме
(3) Отложи до утра. Таки эту задачку стоит решить самому, чтобы не было стыдно перед самим собой.
Можно даже решить задачку со звездочкой - сделать тоже самое в запросе и получить значок от Ильдаровича :)
5. Bovori 2 18.04.17 15:35 Сейчас в теме
(4)В запросе?? Мозги сломаются совсем, жена домой зомби не пустит :))) Хорошо бы до утра, но нужно сегодня. Хоть пните в нужное русло)
6. Octopus 337 18.04.17 15:44 Сейчас в теме
(5) Стройте массив свободных кусков, изначально закинув туда по два промежутка в каждый день: до обеда и после.
Затем перебором занятых участков времени сверяете каждый из них с массивом и оставляете в массиве только обрезки незанятых. В итоге получите нужный результат.
8. herfis 499 18.04.17 15:48 Сейчас в теме
(6) Так бы имело смысл решать задачу с пересекающимися периодами.
9. Octopus 337 18.04.17 15:49 Сейчас в теме
(8) Верно, тут ситуация попроще. Периоды не будут пересекаться.
7. herfis 499 18.04.17 15:46 Сейчас в теме
(5) Слабак!
Да тут и пинать-то особо некуда. Если периоды в рамках группировки (смены) не пересекаются, то свободными промежутками будут промежутки между концом предыдущего периода и началом следующего в отсортированной таблице периодов.
Остается вопрос включения в периоды границ суток. Если переходящих периодов нет, тогда добрасываем "хвосты" начала суток и конца суток. В красивом алгоритме можно попробовать обойтись без явного "добрасывания".
(6) Странный выбор. Вытеснением явно же более сложное решение получается.
10. Bovori 2 18.04.17 15:56 Сейчас в теме
(7)они не пересекаются, но,если смотреть на пример, то между первой и второй строкой во входящей таблице не один свободный промежуток а два.
12. herfis 499 18.04.17 16:17 Сейчас в теме
(10) Ок. Если смотреть на пример, то для начала объясни, как вторая смена умудрилась трижды выйти пятого апреля, причем два раза - не по графику?
14. herfis 499 18.04.17 16:23 Сейчас в теме
Тогда просто добавляешь время обеда как еще один рабочий промежуток (как будто они работали в это время) и возвращаешься к (7)
15. Bovori 2 18.04.17 19:07 Сейчас в теме
(14)Во, ведь думал же что гдето тут простое решение, а мозг в ступоре.., счас попробую)
16. Bovori 2 19.04.17 07:01 Сейчас в теме
(14)Спасибо, помогло, избавил от страданий))) Тему можно закрыть
11. Bovori 2 18.04.17 16:01 Сейчас в теме
То есть конец предыдущего совсем не обязательно начало следующего.
13. herfis 499 18.04.17 16:20 Сейчас в теме
А, стоп. До меня дошло. Ваша чудесная табличка - это перемножение таблички графиков работы смен и их обедов с таблицей фактически отработанных промежутков.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот