destiny child

Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Приветствую! Есть диапазон времени работы точки: {StartTimeX; EndTimeY}. Есть список продавцов, работающих там: Master1, Master2, Master3,... У каждого из них есть список слотов времени, когда они работают в этом магазине: [Slot1{timeX; timeY}, Slot2{timeX; timeY}, Slot3{time; timeY}, ....] Список может быть пустым, может содержать один слот, равный {StartTimeX, EndTimeY}, или несколько слотов. Причем обязательно следующий слот точно не перекрывает предыдущий/не начинается с него. Т.е. если их, к примеру, два - то время окончания первого слота точно не является временем начала следующего. У него время начала хотя бы на кратный 5 минутам отрезок времени, но будет дальше: {15:30;16:45}, {16:50;19:05}. Надо для каждого продавца найти список слотов их НЕрабочего времени! Простейший пример: В магазине время работы {10:00; 22:00}, Продавец работает [{13:00; 17:00}, {19:30; 22:00}]. Значит итоговый искомый список слотов нерабочего времени: [{10:00; 13:00}, {17:00; 19:30}]. Продавец работает [{11:30; 22:00}]. Значит список слотов нерабочего времени: [{10:00; 11:30}]. Продавец работает [], т.е. не работает. Значит список слотов нерабочего времени: [{10:00; 22:00}] В этом списке концы слотов времени конечно же могут и должны равняться концам/началам слотов рабочего времени и/или магазина/продавца. Конечно же список может быть и пустым, т.к. продавец работает полностью {от и до}. Есть идеи какой тут простой)) алгоритм поиска может быть применен? Ищется решение под питон, под какие-нить готовые библиотеки, связанные с временем/датой... |