У меня есть функция, которая возвращает True или False для определенных дней.
Я хочу построить список со всеми истинными датами с 2002 года, используя эту функцию.
Я пробовал:
import datetime as dt
valid_days = []
for year in range(2002,2018):
for month in range(1,13):
for day in range(1,32):
current_date = dt.datetime(year,month,day)
if(is_valid_day(current_date)):
valid_days.append(current_date)
Однако это означает, что, например, для февраля используется дата и время для 30-го дня, и я получаю следующую ошибку:
----> 5 current_date = dt.datetime(year,month,day)
ValueError: day is out of range for month
Как это можно сделать простым и понятным способом? Идея состоит в том, чтобы просто пропустить комбинации дат, которые не имеют смысла (например, 30 февраля или 31 апреля). Примечание: четкость и легкость чтения кода предпочтительнее производительности.