Creates a list of dates between start
(inclusive) and end
(not inclusive).
- Use
datetime.timedelta.days
to get the days betweenstart
andend
. - Use
int()
to convert the result to an integer andrange()
to iterate over each day. - Use a list comprehension and
datetime.timedelta
to create a list ofdatetime.date
objects.
代码实现
from datetime import timedelta, date
def daterange(start, end):
return [start + timedelta(n) for n in range(int((end - start).days))]
使用样例
from datetime import date
daterange(date(2020, 10, 1), date(2020, 10, 5))
# [date(2020, 10, 1), date(2020, 10, 2), date(2020, 10, 3), date(2020, 10, 4)]