我正在寻找一种简单的方法来获取Python当前的当周数字。我很清楚标准库中的datetime.datetime.isocalendar()函数,但是这个函数规定第1周是新年的第一个星期一。我的困境是我用星期日作为每周的起点,如果星期日例如12月27日和1月1日出现在那个星期的某个时刻,我需要将那个星期表示为第1周(和年) 2015年)。
我想做类似(伪代码)的事情:
if (Jan 1) - (current_sunday) < 7 days:
week_num = 1
然后将该周数存储在某个地方,以便在下周进行迭代。但是,我觉得这是一种非常苛刻的方法,并且更喜欢更清洁的东西。
答案 0 :(得分:3)
通常获取当前周数(从星期日开始):
>>> import datetime
>>> import calendar
>>> today = datetime.date.today())
>>> (int(today.strftime('%U')) + (datetime.date(today.year+1, 1, 1).weekday() != calendar.SUNDAY)) % 53
12
来自strftime('%U')
的文档:
&#34;一年中的周数(星期日作为一周的第一天)作为十进制数[00,53]。在第一个星期日之前的新年中的所有日子都被认为是在第0周。&#34;
因此,针对您的特定要求修改了代码。做你想做的事并不是一种非黑客的方式。