我能否獲得一些幫助來創建以下格式的日期和月份串列:
collection = ['2108', '2109', '2110', '2111', '2112', '2201']
我正在嘗試這種方式:
def make_collections(start_date: Date, end_date: Date):
result = []
date = start_date
while True:
if start_date >= end_date:
return result
date = date.strftime('%y%m%d%H%M%S')
result.append(date[:4])
date = (date.strptime(date, '%y%m%d%H%M%S')) timedelta(days=1)
# test = MakeDataFrame()
# test.run()
if __name__ == '__main__':
start = datetime.now() - timedelta(days=365)
print(make_collections(start, datetime.now()))
但它不起作用。
我想在函式中給出開始日期和結束日期作為引數,并按照上面提到的年份和月份列出一個串列。
我可以獲得一些幫助來制作一個以開始和結束日期為引數的簡單函式嗎?謝謝
uj5u.com熱心網友回復:
我稍微修改了你的代碼,這樣代碼就會列印出你所期望的。我使用dateutil.relativedelta了模塊,因為 timedelta 只提供基于天的增量。dateutil.relativedelta支持計算月份和年份的差異。
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
def make_collections(start_date, end_date):
result = []
while start_date <= end_date:
result.append(str(start_date.year)[2:] str(start_date.month).zfill(2))
start_date = relativedelta(months=1)
return result
if __name__ == '__main__':
start = datetime.now() - timedelta(days=365)
print(make_collections(start, datetime.now()))
#['2101', '2102', '2103', '2104', '2105', '2106', '2107', '2108', '2109', '2110', '2111', '2112', '2201']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414102.html
標籤:
