我正在尝试编写一个名为days15()的函数。该函数将传递一个名为“ myDateStr”的参数。myDateStr 是格式为 20170817(即 YearMonthDay)的日期的字符串表示形式。函数中的代码将根据字符串创建一个datetime对象,然后将创建一个长度为1天的timedelta对象。然后,它将使用列表推导生成 15 个日期时间对象的列表,从传递给函数的日期开始该函数应返回以下列表。[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, timedeltamyDateStr = '20170817'def days15(myDateStr):
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
正如您所说,将有两个步骤来实现:首先,将字符串日期转换为日期时间对象,其次,使用 timedelta 迭代接下来的 15 天,使用列表理解或简单循环。
from datetime import datetime, timedelta
myDateStr = '20170817'
# Parse the string and return a datetime object
def getDateTime(date):
return datetime(int(date[:4]),int(date[4:6]),int(date[6:]))
# Iterate over the timedelta added to the starting date
def days15(myDateStr):
return [getDateTime(myDateStr) + timedelta(days=x) for x in range(15)]
添加回答
举报
0/150
提交
取消