「年の週」で2つの日付の差を計算しようとしています。日時オブジェクトを取得して日などを取得できますが、週番号は取得できません。もちろん、週末を保証できないため、日付を減算することはできません。
d1.isocalendar()[1]
使用して減算して週番号を取得しようとしましたd2.isocalendar()[1]
が、問題は週1としてisocalendar()[1]
返さDecember 31, 2012
れることです(これはおそらく正しいです)が、それは私のロジックがこの日付にまたがることができないことを意味します.
参考までに、私の完全なコードは次のとおりです。
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 になります。