Расчет даты: подсчет дней, соответствующих сложным условиям в заданном диапазоне без циклов - PullRequest
0 голосов
/ 03 июня 2018

Я реализую небольшое приложение-календарь с повторяющимися событиями.Событие указывается с использованием синтаксиса crontab.

Выражения могут быть довольно сложными:

  00 11 28-31 */3 MON#1,MON#2,MONL */2
  ^  ^    ^    ^       ^            ^
  |  |    |    |       |            |
  |  |    |    |       |            * - every even year
  |  |    |    |       * - on first, second and last Monday of month
  |  |    |    * - every third month
  |  |    * - since 28th till 31st days of month
  |  * - at 11AM
  * - first minute of the hour

При подготовке отчетов мне нужно подсчитать, сколько раз срабатывает данное повторяющееся событие.Сейчас я использую очень простой подход: просто перебираю все даты в диапазоне и проверяю, соответствует ли условие, но это кажется супер неэффективным.

Поэтому мой вопрос: могу ли я как-то рассчитать количество дней?соответствие заданным условиям без циклического перебора диапазона?

Спасибо.

PS Я много гуглял по этому вопросу и не нашел по крайней мере одну реализацию без циклов.Это что-то из королевства NP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...