День добрый,
Есть задача вести несколько различных графиков работ (график работы предприятия, график работы по должности, график работы отдела, график работы оборудования и т.д.). Пока есть идея описывать данные графики работ от общего к частностям, то есть задавать правила, а потом указывать для них исключения. Например указать что график работы компании с 9:00 до 18:00 с понедельника по пятницу, а потом указать праздничные и сокращенные дни. На самом деле все несколько сложнее, нет привязки к дням, а есть просто указание промежутков времени.
Исходя из данных требований был разработан прототип работы с графиками, но немного смущает скорость работы. Подсчет количества рабочего времени на год занимает 3 секунды (идет процесс преобразования правил в рабочие промежутки времени). Возможно алгоритм не оптимален и может быть оптимизирован, но вопрос не в этом
Есть ли какие нибудь алгоритмы или общие подходы к работе с календарями/графиками работы? Также есть потребность в пересечении, вычитании и пересечении графиков работы. Как правильно с этим работать и что можно почитать? Куда копать?
Заранее спасибо за разумные ответы