Указание периодических временных интервалов (например, время работы офиса)

#time

Вопрос:

Я разрабатываю API, в котором мне нужно указать часы работы офиса. Это может быть как

  • 0815-1745 каждый понедельник по пятницу
  • Каждую Вторую Субботу
  • В ожидаемые дни пиковой нагрузки до 2000 года [например: 2021-06-15 1745-2000]

Каждый интервал будет указан отдельно, и конечные часы работы будут суммой всех отдельных интервалов.

Мне нужно средство, чтобы кратко это уточнить. Есть два существующих варианта, о которых я знаю:

  1. Расширенный cron формат, как определено в https://crontab.guru/
  2. GotoIfTime Синтаксис звездочки: https://www.voip-info.org/asterisk-cmd-gotoiftime

Синтаксис cron на самом деле не может определять диапазоны, такие как 0815-1745, каждый понедельник по пятницу, но синтаксис Звездочки вполне способен.

Есть ли еще [лучше?] существует синтаксис/средства, которые могут достичь того же результата? Библиотека для этого будет очень классной.

Комментарии:

1. Такие вещи, как «каждую вторую субботу», могут быть проблематичными. Потому что каким-то образом вам нужно определить, что такое «первая» и что такое «вторая» суббота …

2. Это довольно распространенное явление, например, индийские банки работают каждую первую, третью и пятую(если таковые имеются) субботу 🙂