小编Fil*_*eca的帖子

Python Django:计算工作日

我需要计算两个日期之间的工作日。此外,我还必须删除单独表中列出的日期(假期)。

到目前为止,我有这个代码。它计算天数,但不会从单独的表(假期)中删除天数。

class Holidays(models.Model):
    class Meta:
        ordering = ['date']

    date = models.DateField(null=True, verbose_name='Date')

class Situation(models.Model):
    class Meta:
        ordering = ['date_time_start']

    date_time_start = models.DateTimeField(null=True, blank=False, verbose_name='Date/Time Start')
    date_time_end = models.DateTimeField(null=True, blank=False, verbose_name='Date/Time End')

    @property
    def business_days(self):
        holidays = Holidays.objects.values_list('date', flat=True)
        oneday = datetime.timedelta(days=1)
        dt = self.date_time_start.date()
        total_days = 0
        while (dt <= self.date_time_end.date()):
            if not dt.isoweekday() in (6, 7) and dt not in holidays.values():
                total_days += 1
            dt += oneday
        return total_days
Run Code Online (Sandbox Code Playgroud)

django datetime days difference

0
推荐指数
1
解决办法
228
查看次数

标签 统计

datetime ×1

days ×1

difference ×1

django ×1