在 Python 中生成日期范围

PythonPythonBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在 Python 中,datetime 模块提供了用于处理日期和时间的类。一个常见的任务是创建两个给定日期之间的日期列表。在这个挑战中,你将创建一个函数,该函数接受两个日期作为输入,并返回它们之间的所有日期的列表。

日期范围

编写一个名为 daterange(start, end) 的 Python 函数,该函数接受两个 datetime.date 对象作为参数,并返回它们之间的所有日期的列表。该列表应包括开始日期但不包括结束日期。

要解决此问题,你可以按照以下步骤操作:

  1. 使用 datetime.timedelta.days 获取 startend 之间的天数。
  2. 使用 int() 将结果转换为整数,并使用 range() 遍历每一天。
  3. 使用列表推导式和 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))]
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)]

总结

在这个挑战中,你已经学会了如何使用 Python 中的 datetime 模块创建两个给定日期之间的日期列表。你可以使用这个函数来解决各种问题,比如计算两个日期之间的天数,或者生成给定月份或年份的日期列表。