给定一个日期值和一个数字,我想看看这个数字与前几年的同一天的数字相比如何。在
对于“等价日”,我指的是相同的周数和相同的工作日,而不是相同的日历日期。在
例如,从1975年5月25日开始:
>>> holyGrail = datetime.datetime(1975,5,25)
是第21周的第七天:
^{pr2}$我想把1974年、1973年的第21周第7天的日期拉出来。。在
基本上我想做这样的事情:
>>> 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中工作正常,似乎是我需要的,但是当我试图在strptime()
中使用相同的%V格式时,我得到了错误
ValueError: 'V' is a bad directive in format '%Y-%V-%w'
我怎样才能轻松/可靠地将年/周/工作日的日期追溯到过去呢?在
请注意,我并不真的关心几周的开始时间,也不关心新年期间的一周是什么,我只需要一个一致的方法,以便能够进行准确的同比比较。在
我认为这应该行得通:
在公历中,有些年份有52周,有些年份有53周,因此并不总是有一个相等的日期。在这些情况下,它将引发ValueError。在
^{pr2}$相关问题 更多 >
编程相关推荐