简体   繁体   English

django 2小时之间的计算时间

[英]calcul time between 2 hours in django

I try to calculate the time elapsed between 2 hours but also to make a sum for the day and the week. 我尝试计算2小时之间经过的时间,还要计算一天和一周的总和。

I tried several methods but none was congruent and I dry completely, no more ideas. 我尝试了几种方法,但没有一种是完全一致的,我完全干燥了,没有更多的想法了。

class Timesheet(models.Model):
owner = models.ForeignKey(User, on_delete = models.CASCADE)
title = models.CharField(max_length = 64, verbose_name = _("Title"))
start = models.DateTimeField(verbose_name = _("Start time"))
end = models.DateTimeField(verbose_name = _("End time"))
allDay = models.BooleanField(blank = True, default = False, verbose_name = _("All day"), help_text = _("If it's a full day work, just click 'Now' for start/end"))
week = models.IntegerField(verbose_name = "working week")

def __str__(self):
    return "{}".format(self.title)

def save(self, *args, **kwargs):
    if not self.pk:
        self.week = datetime.datetime.now().isocalendar()[1]
    if self.allDay:
        self.start = datetime.datetime(year = datetime.datetime.today().year, month = datetime.datetime.today().month, day = datetime.datetime.today().day, hour=8, minute=00)
        self.end = datetime.datetime(year = datetime.datetime.today().year, month = datetime.datetime.today().month, day = datetime.datetime.today().day, hour=17, minute=30)
    super(Timesheet, self).save(*args, **kwargs)

In the hope that you can help me. 希望能对我有所帮助。

Regards, 问候,

If you meant difference between two variables having only time part you can use datetime to achieve this. 如果您的意思是两个仅具有时间部分的变量之间的差异,则可以使用datetime实现。

from datetime import datetime
time1 = '09:00'
time2 = '13:15' 
fmt = '%H:%M'
difference1 = datetime.strptime(time2, fmt) - datetime.strptime(time1, fmt)
difference2 = datetime.strptime(time1, fmt) - datetime.strptime(time2, fmt)

print("difference 1 = {} \ndifference2 = {}".format(difference1, difference2))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM