日期范围

创建一个在 start(包含)和 end(不包含)之间的日期列表。

  • 使用 datetime.timedelta.days 获取 startend 之间的天数。
  • 使用 int() 将结果转换为整数,并使用 range() 迭代每一天。
  • 使用列表推导和 datetime.timedelta 创建一个 datetime.date 对象的列表。
from datetime import timedelta, date

def daterange(start, end):
  return [start + timedelta(n) for n in range(int((end - start).days))]

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)]