我試圖計算「一週中的兩個日期」中兩個日期之間的差異。我可以得到日期時間對象,並獲得日期等,但不是週數。當然,我不能減去日期,因爲週末不能保證。如何計算Python中兩個日期的差異
我試圖讓使用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
有了這個代碼,在12月31日的演講中,2012最終是-35。
你能僅僅通過解釋它,特別是在'monday1'並闡述你的代碼'monday2'計算。 –
完美工作,跨越幾年和幾周。非常簡潔。非常感謝:) – recluze
我得到一個錯誤與'天()':'(PDB)(monday2 - monday1).days() ***類型錯誤: '詮釋' 對象不是可調用 (PDB)(monday2 - 星期一1).days 77' – otmezger