gpt4 book ai didi

python - 类似于内置范围函数的简洁日期范围函数

转载 作者:行者123 更新时间:2023-12-01 05:12:13 25 4
gpt4 key购买 nike

我正在尝试找到一种更简洁的方法来生成两个值之间的日期范围。我希望这个函数类似于 python 中的内置 range 函数。

#Range Function
>>>range(1,5)
[1,2,3,4]

这是我目前写的:

def as_datetime(date_string):
try:
return datetime.datetime.strptime(date_string, '%d/%m/%Y')
except ValueError:
# The date string was invalid
return None

x = []
start_date = as_datetime('12/07/2013')
end_date = as_datetime('16/07/2013')

total_days = (end_date - start_date).days + 1

for day_number in range(total_days):
cd = (start_date + dt.timedelta(days = day_number)).date()
x.append(cd.strftime('%d/%m/%Y'))

#Output
>>>Print x
['12/07/2013', '13/07/2013', '14/07/2013', '15/07/2013', '16/07/2013']

对我来说,一个基本功能似乎有很多代码。如果您能帮助我查找/修改一些代码来执行此操作,那就太好了。

最佳答案

您可以使用生成器简单地编写此代码。

from datetime import datetime, timedelta

def daterange(start, end):
current = start

while current < end:
yield current
current += timedelta(days = 1)

要优化一点,您应该保存该 timedelta 对象以供重用。像这样使用生成器:

start = datetime(2014, 1, 1)
end = datetime(2014, 1, 4)

for d in daterange(start, end):
print d

您可以通过创建并提供__iter__来改进此实现。这样,您还可以提供 __len____getitem__ 索引等。

关于python - 类似于内置范围函数的简洁日期范围函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23946693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com