給定一個日期值和一個數字,我想看看這個數字與前幾年當天的數字相比如何。在Python中,我如何根據年份,週數和工作日得到日期?
對於「當日」,我的意思是同一周的數字和同一個工作日,而不是相同的日曆日期。
例如,開始像1975年5月25日的日期:
>>> holyGrail = datetime.datetime(1975,5,25)
這是第21周的第七天:
>>> holyGrail.isocalendar()
(1975, 21, 7)
>>>
我想拉起7日的日期1974年,1973年等21周的日子。
本質上我想這樣做:
>>> yearBack = datetime.datetime().isocalendar(1974,21,7)
,並使其返回我的日期匹配星期&工作日,在這種情況下將是1974年5月26日,而不是25:
>>> yearBack = datetime.datetime(1974,5,26)
>>> yearBack.isocalendar()
(1974, 21, 7)
>>>
我從https://stackoverflow.com/a/28069361/5324657看到,有一個(無證? )格式%V至strftime()
,返回ISO-8601的週數,這在strftime的工作正常,似乎是我所需要的,但是當我嘗試使用相同%V格式strptime()
我得到的錯誤
ValueError: 'V' is a bad directive in format '%Y-%V-%w'
我該怎麼辦sily /可靠地拉起同等的Year/WeekNo/Weekday日期?
請注意,我並不在乎新周開始時間或完整週期,我只需要一個一致的方法,可以進行準確的年度比較。
重複的http://stackoverflow.com/a/7687085/5324657,但那個方便的isoweek模塊不是內置的。有沒有內置的方法來做到這一點? –
這個重複的問題給出了唯一的內置方法;如果你的周定義與Python的不匹配(並且你不能使用Python 3.6的ISO友好'strptime'),那麼不會,沒有(適度乾淨的)內置的方式。想要有一個內置的並不是如此。 – ShadowRanger