我正在嘗試編寫一個名為days15()的函數(shù)。該函數(shù)將傳遞一個名為“ myDateStr”的參數(shù)。myDateStr 是格式為 20170817(即 YearMonthDay)的日期的字符串表示形式。函數(shù)中的代碼將根據(jù)字符串創(chuàng)建一個datetime對象,然后將創(chuàng)建一個長度為1天的timedelta對象。然后,它將使用列表推導生成 15 個日期時間對象的列表,從傳遞給函數(shù)的日期開始該函數(shù)應(yīng)返回以下列表。[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)]我被代碼困住了。我已經(jīng)使用了以下內(nèi)容。請幫忙。謝謝from datetime import datetime, timedeltamyDateStr = '20170817'def days15(myDateStr):
2 回答

收到一只叮咚
TA貢獻1821條經(jīng)驗 獲得超5個贊
正如您所說,將有兩個步驟來實現(xiàn):首先,將字符串日期轉(zhuǎn)換為日期時間對象,其次,使用 timedelta 迭代接下來的 15 天,使用列表理解或簡單循環(huán)。
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
提交
取消