В конфиге моей программы на Python 3 мне нужно иметь возможность указывать произвольные условия даты / времени, например, такие как:
EveryПонедельник с 11:00 до 14: 05
1 и 10 января и июня, с 18:00 до 18: 55
В период с 20:00 до 23:59 все дни марта и мая
Затем мне нужно, чтобы запущенная программа соответствовала /запросить / сравнить эти условия с объектами datetime (т.е. вернуть True / False относительно того, попадает ли дата / время, представленный рассматриваемым объектом datetime в эти условия).
Моя конфигурация основана на коде Python (то есть включенномобщий файл config.py), поэтому любые объявления / реализации объектов Python или структур данных будут абсолютно приемлемыми (и даже предпочтительными) в качестве формата спецификации конфигурации.
С учетом сказанного, мой вопрос / вопросы:
Is существует «очевидный наиболее эффективный способ» выразить / указать (в коде Python) такие условия даты / времени, используя, например, некоторый объект любого существующего модуля Python (т. е. таким же образом, как экземпляр datetime.timedelta
будет «очевидным»самый эффективный способ "выразить разницу во времени)?
Есть ли один (или несколько)" очевидных наиболее эффективных способов "сопоставить / запросить / сравнить такие общие выраженные условия даты / временипо отношению к объекту datetime (т. е. таким же образом, как datetime.weekday() == 1
будет одним из таких «очевидных более эффективных способов» для запроса гораздо более основного условия, является ли объект datetime вторником)?
БОНУС: Был бы даже какой-нибудь такой «очевидный наиболее эффективный способ» найти отметку времени next future относительно протестированного объекта datetime, которая соответствует любым предоставленным таким условиям, если в настоящее время тестируется datetimeобъект не соответствует им?
Или мне просто нужно написать какой-нибудь грязный код для всего этого с нуля, сам?