如何在Python中计算两个日期之间的周数差异

10 浏览
0 Comments

如何在Python中计算两个日期之间的周数差异

我正在尝试计算两个日期之间的“年周差”。我可以获取日期时间对象并获取天数等信息,但无法获取周数。当然,我不能简单地减去日期,因为这样无法保证周末的准确性。

我尝试使用d1.isocalendar()[1]获取周数,然后减去d2.isocalendar()[1],但问题是isocalendar()[1]2012年12月31日作为第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] # 获取年周
             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。

0