Предполагая, что вы уже определили, что это понедельник, затем посчитайте дни с начала года (yday()
), модуль на 28 и посмотрите, будет ли результат в 22 и 27 (включительно) или 0 .
Учитывая дату начала (начального запуска), вы можете просто использовать step(28)
, чтобы получить следующую дату, и, если она равна текущей дате, запустите и сохраните ее для следующего запуска.
В качестве отступления, если вы имели в виду 4-й понедельник месяца, проверьте текущий день месяца, а если он между 22-м и 28-м числами месяца, вы находитесь в четвертом событии этого дня неделю в этом месяце.