実際に文字列オブジェクトとして開始するyyyywwを201731のように変換しようとしています。自分自身を含めて最後の6週間をキャプチャしたいと思います。Pythonを使用して別の年を越えるISO Weekリストを返します
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の出力は次のようになります。
[201702, 201701, 201700, 201651, 201650, 201649]
:
[201731, 201730, 201729, 201728, 201727, 201726]
、これが動作しているようですが、問題は、私は201702のようなクロスオーバー年でそれをテストする場合には、これを返しています
これはかなり良く見えますが、私はISO週にそれを必要としますので、週の00はないと思います。年の最後の週は53または52でなければなりませんが、51ではなくなります。
これをどのように適応させるのですか?
回避策M.Hamelに感謝しますが、より鮮明で堅牢な方法が必要です。私は別のハックを見つけたが、isoweekパッケージが必要だと思う。 – IcemanBerlin