Python 迭代日期范围

Python 迭代日期范围

日期范围由起始日期、结束日期和所有中间日期定义。在Python中,我们有一些内置函数,如datetime.date()、range()、timedelta()和delta(),用于迭代日期范围。

让我们以一个例子来说明。

起始日期, 26-06-2023

结束日期, 30-06-2023

因此,日期范围的最终结果为:

26-06-2023

27-06-2023

28-06-2023

29-06-2023

30-06-2023

语法

以下语法在示例中使用-

datetime.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()函数返回两个变量之间的所有日期。这种类型的程序有助于基于搜索构建数学公式。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程