我正在尝试编写一个名为days15()的函数。该函数将传递一个名为“ myDateStr”的参数。 myDateStr是日期的字符串表示形式,格式为20170817(即YearMonthDay)。函数中的代码将根据字符串创建一个datetime对象,然后将创建一个长度为1天的timedelta对象。然后,它将使用列表推导生成一个15个datetime对象的列表,从传递给该函数的日期开始
该函数应返回以下列表。
[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)]
我为代码而苦恼。我已经努力解决以下问题。请帮忙。谢谢
from datetime import datetime, timedelta
myDateStr = '20170817'
def days15(myDateStr):
答案 0 :(得分:0)
正如您所说,将实现两个步骤:首先,将字符串date转换为datetime对象,其次,使用列表理解或简单循环,使用timedelta在接下来的15天进行迭代。
gateway.host.internal
答案 1 :(得分:0)
Pandas将帮助您将字符串转换为日期时间,因此首先需要导入它:
from datetime import datetime, timedelta
import pandas as pd
myDateStr = '20170817'
然后,您可以初始化一个空列表,稍后再添加:
datelist = []
然后编写一个函数:
def days15(myDateStr):
#converting to datetime
date = pd.to_datetime(myDateStr)
#loop to create 15 datetimes
for i in range(15):
newdate = date + timedelta(days=i)
#adding new dates to the list
datelist.append(newdate)
然后您可以调用函数并获得15个日期时间的列表:
days15(myDateStr)