Python 日期范围迭代
日期范围由起始日期、结束日期以及两者之间的所有日期定义。在 Python 中,我们可以使用一些内置函数,例如 `datetime.date()`、`range()`、`timedelta()` 和 `delta()` 来迭代日期范围。
让我们来看一个例子。
起始日期:2023-06-26
结束日期:2023-06-30
因此,最终的日期范围结果为:
2023-06-26
2023-06-27
2023-06-28
2023-06-29
2023-06-30
语法
以下语法在示例中使用:
datetime.date()
`date()` 是 Python `datetime` 库的一个实例函数,它返回日期对象。
range()
内置函数 `range()` 通过返回根据给定长度排序的数字来定义。
timedelta()
`timedelta()` 是一个内置的 Python 函数,它遵循名为 `datetime` 的库,并返回日期之间的差值。
使用 while 循环
在下面的示例中,首先导入将用于设置日期的 `datetime` 模块。接下来,将两个不同的日期初始化到各自的变量中,这些变量将用于计算差值。然后,使用 `while` 循环,它根据 `<=` 运算符设置条件以获取日期范围。使用带有 `+=` 运算符的内置函数 `timedelta()`,它显示所有日期。
示例
import datetime
start = datetime.date(2023, 6, 3)
end = datetime.date(2023, 6, 4)
res_date = start
print("The range dates are:")
while res_date <= end:
print(res_date)
res_date += datetime.timedelta(days=1)
输出
The range dates are: 2023-06-03 2023-06-04
使用列表推导式
在下面的示例中,程序以包含日期信息的 `datetime` 模块开头。然后,使用列表推导式查找两个日期之间的差值。这可以通过使用 `timedelta` 函数以及递增的天数来完成,从起始日期开始,直到到达结束日期。
示例
import datetime
start = datetime.date(2023, 6, 16)
end = datetime.date(2023, 6, 19)
date_of_range = [start + datetime.timedelta(days=delta) for delta in range((end - start).days + 1)]
print("The range dates are:")
for res_date in date_of_range:
print(res_date)
输出
The range dates are: 2023-06-16 2023-06-17 2023-06-18 2023-06-19
使用 timedelta()
在下面的示例中,我们将使用 `for` 循环,其中变量 `delta` 使用内置函数 `range()` 迭代两个初始化日期。接下来,将起始日期与 `timedelta()` 相加,它接受参数 `days=delta`,返回两个日期之间的差值,并生成程序的最终结果。
示例
import datetime
start = datetime.date(2023, 6, 1)
end = datetime.date(2023, 6, 5)
print("The range of dates:")
# Calculate the differences using range()
for delta in range((end - start).days + 1):
result_date = start + datetime.timedelta(days=delta)
print(result_date)
输出
The range of dates: 2023-06-01 2023-06-02 2023-06-03 2023-06-04 2023-06-05
使用递归函数生成范围列表中的偶数日期
在下面的示例中,程序使用 `datetime` 库来设置日期。然后,使用递归函数,它接受两个参数来设置起始日期和结束日期,这些日期将用于处理日期范围。接下来,使用 `while` 循环,它根据 `<=` 运算符设置差值条件,并使用 `timedelta()` 计算偶数日期。接下来,将起始日期和结束日期初始化到各自的变量中。最后,使用 `for` 循环迭代这两个变量(即 `start_date` 和 `end_date`)以生成偶数日期。
示例
import datetime
# Function definition
def range_date(start, end):
res_date = start
while res_date <= end:
yield res_date
res_date += datetime.timedelta(days=2)
start_date = datetime.date(2023, 6, 10)
end_date = datetime.date(2023, 6, 20)
print("The range dates are-")
for c_date in range_date(start_date, end_date):
print(c_date)
输出
The range dates are- 2023-06-10 2023-06-12 2023-06-14 2023-06-16 2023-06-18 2023-06-20
结论
日期范围的迭代指定了两个变量,即起始日期和结束日期。使用 `for` 循环,它根据特定条件和运算迭代日期。然后使用 `timedelta()` 函数返回两个变量之间的所有日期。这种类型的程序有助于构建基于搜索的数学公式。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP