我正在尝试计算“一年中的几周”中两个日期之间的差异。我可以获取 datetime 对象并获取天数等,但不能获取周数。当然,我不能减去日期,因为这样不能保证周末。
我尝试使用d1.isocalendar()[1]
和减去获得周数,d2.isocalendar()[1]
但问题是isocalendar()[1]
返回December 31, 2012
为第 1 周(这应该是正确的),但这意味着我的逻辑不能跨越这个日期。
作为参考,这是我的完整代码:
def week_no(self):
ents = self.course.courselogentry_set.all().order_by('lecture_date')
l_no = 1
for e in ents:
if l_no == 1:
starting_week_of_year = e.lecture_date.isocalendar()[1] # get week of year
initial_year = e.lecture_date.year
if e == self:
this_year = e.lecture_date.year
offset_week = (this_year - initial_year) * 52
w_no = e.lecture_date.isocalendar()[1] - starting_week_of_year + 1 + offset_week
break
l_no += 1
return w_no
使用此代码,2012 年 12 月 31 日的讲座最终为 -35。