我想转换一个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