我想轉換一個yyyyww,它實際上是一個字符串對象,我認爲它就像201731一樣。我想捕獲包括它自己在內的最後6周。返回ISO周列表,它使用python跨越另一年
def generate_6_last_week(yearweek):
weeks = [int(yearweek)]
date = time.mktime(datetime.strptime(str(yearweek)+"0","%Y%W%w").timetuple())
for i in range(1,6):
date = date-604800 # 60*60*24*7
weeks.append(int(datetime.fromtimestamp(int(date)).strftime('%Y%W')))
return weeks
generate_6_last_week(201731)
所以輸出爲201731應該是:
[201731, 201730, 201729, 201728, 201727, 201726]
,這似乎工作,問題是,如果我用交叉一年測試它像201702它返回:
[201702, 201701, 201700, 201651, 201650, 201649]
這也看起來不錯,但我需要它在ISO周,所以不應該有一個星期00我認爲和一年的最後一週應該是53或52,但不是51.
任何想法如何適應此?
感謝解決方法M.Hamel,但需要一個更清晰可靠的方法。我認爲我發現了另一個黑客,但需要isoweek軟件包。 – IcemanBerlin