为我的代码创建一个带有datetime和timedelta的函数。

问题描述 投票:0回答:1

我已经完成了我的代码,当我运行它时,它可以工作。然而,我需要把它变成一个函数,如果我调用这个函数并传入任何数字列表,我可以得到同样的结果。这是我的代码。

from datetime import datetime, timedelta
dateStr = 'user-input'
dateObj = datetime.strptime(dateStr, '%Y%m%d')
timeStep = timedelta(days=1)
dateObj2 = dateObj + timeStep
days15 = [dateObj + timeStep*i for i in range(15)]
print(days15)

datetime.datetime(2017, 1, 1, 0, 0),...。

我需要能够传入

date_str = "20170817"
results = days_15(date_str)
print(results)

然后得到同样的结果。任何提示或任何帮助-------------------------------------------------------------------------------------------------谢谢

python-3.x function datetime timedelta
1个回答
0
投票

你只需要添加一个 def 语句在你的代码前定义函数,而不是打印结果。return 它:

from datetime import datetime, timedelta

def days_15(dateStr):
    dateObj = datetime.strptime(dateStr, '%Y%m%d')
    timeStep = timedelta(days=1)
    return [dateObj + timeStep*i for i in range(15)]

my_date_str = "20170817"
results = days_15(my_date_str)
print(results)

输出:

[
datetime.datetime(2017, 8, 17, 0, 0), datetime.datetime(2017, 8, 18, 0, 0), 
datetime.datetime(2017, 8, 19, 0, 0), datetime.datetime(2017, 8, 20, 0, 0), 
datetime.datetime(2017, 8, 21, 0, 0), datetime.datetime(2017, 8, 22, 0, 0), 
datetime.datetime(2017, 8, 23, 0, 0), datetime.datetime(2017, 8, 24, 0, 0), 
datetime.datetime(2017, 8, 25, 0, 0), datetime.datetime(2017, 8, 26, 0, 0), 
datetime.datetime(2017, 8, 27, 0, 0), datetime.datetime(2017, 8, 28, 0, 0), 
datetime.datetime(2017, 8, 29, 0, 0), datetime.datetime(2017, 8, 30, 0, 0), 
datetime.datetime(2017, 8, 31, 0, 0)
]
© www.soinside.com 2019 - 2024. All rights reserved.