根据相同的ISO规范,1月4日将始终是给定年份的第1周.按照同样的计算,12月28日总是在一年的最后一周.您可以使用它来查找给定年份的上周数字:
from datetime import date, timedelta
def weeks_for_year(year):
last_week = date(year, 12, 28)
return last_week.isocalendar()[1]
Run Code Online (Sandbox Code Playgroud)
- 这是今年的最后一个星期四.
- 这是最后一周,12月份的大部分时间(4次或更多次).
- 它的中间一天,周四,在结束的一年.
- 它的最后一天是最接近12月31日的星期日.
- 它有12月28日.因此,最新的可能日期是12月28日至1月3日,即最早的12月21日至28日.
对于更全面的周计算,您可以使用该isoweek
模块 ; 它有一个Week.last_week_of_year()
类方法:
>>> import isoweek
>>> isoweek.Week.last_week_of_year(2014)
isoweek.Week(2014, 52)
>>> isoweek.Week.last_week_of_year(2014).week
52
Run Code Online (Sandbox Code Playgroud)