对于给定的日期,我必须按照以下规则找到一年中的周数:
- 一周从周日开始,到周六结束。
- 一年中的第一周在 1 月的第一个星期六结束,只要它在该月至少四天,即使这意味着第一周从 12 月开始。
我知道datetime.datetime.isocalendar()
返回的结果相似,但是这一周从星期一开始。该time.strftime('%U',<tuple>)
模块返回从星期日开始的周数,但它将一年中的第一周视为在第一个星期六结束的一周(不考虑一周中至少有 4 天在 1 月)。有没有一个模块可以让我根据我上面的定义找到周数?否则有人可以建议一种方法来超载datetime.isocalendar()
编辑:我正在尝试以下方法
第 1 步:找到一年中的第一周,从星期日开始计算周数,不考虑 4 天的限制(基本上第一周应该包含一年中的第一个星期三)。
我用了
dt = datetime.date.today()
year = dt.year
first_Sunday = datetime.datetime.strptime('%d-00-0' % year, '%Y-%U-%w').date()
第 2 步:确定 so 获得的第一周是否包含第一个星期三。
但是由于某些奇怪的原因datetime.datetime.strptime('2013-00-0', '%Y-%U-%w').date()
正在输出date(2013, 1, 1)
,这显然是星期二!