Я стараюсь хранить часы доступности для разных сервисов. (Каждый рабочий день (8, 9 часов), 24/7 и т. Д.) Рабочий день может иметь разное рабочее время (08: 00-16: 00 или 09: 00-17: 00, 08: 00-18: 00 и т. Д. .)
Существуют также национальные праздники, когда обычный рабочий день действует как выходные, и любой данный выходной день также может быть рабочим днем.
Как лучше всего хранить это вбаза данных (PostgreSQL)?
Справочная информация
Основная цель состоит в том, чтобы рассчитать, сколько минут заданного временного диапазона находится во времени обслуживания.
A) Время обслуживания - только рабочие дни (08: 00-16: 00), а диапазон дат - [2019-10-21 15:00 ( Понедельник ) - 2019-10-22 09:00 ( вторник )]. Весь диапазон составляет 18 часов, но только 2 часа были в рабочем времени.
B) Я также хочу вычислить, знаю ли я время начала (2019-10-21 15:00) и есть 3 часа, чтобы закончить работу (в рабочее время), тогда когда будет дата окончания? (2019-10-22 10:00 - 1 час понедельник , 2 часа вторник )