Поскольку ваши даты в списке, это довольно просто сделать. Предполагая, что все объекты datetime
или timedelta
, сравнения также очень просты.
Я использую следующую настройку для этого примера:
from datetime import datetime, timedelta
# This is so the min_date and max_date have their time portion set to midnight
dt = datetime.today()
min_date = datetime(dt.year, dt.month, dt.day)
max_date = datetime(dt.year, dt.month, dt.day) + timedelta(days=6)
dates = [
datetime(2020, 2, 18),
datetime(2020, 2, 19),
datetime(2020, 2, 20),
datetime(2019, 12, 18), # <-- outside your defined range
datetime(2020, 2, 21),
datetime(2020, 2, 22),
datetime(2020, 2, 23),
]
Затем вы можете просто получить даты с пониманием:
>>> [d for d in dates if min_date <= d <= max_date]
[datetime.datetime(2020, 2, 19, 0, 0),
datetime.datetime(2020, 2, 20, 0, 0),
datetime.datetime(2020, 2, 21, 0, 0),
datetime.datetime(2020, 2, 22, 0, 0),
datetime.datetime(2020, 2, 23, 0, 0)]