您好我正在使用django并通过
收集日期时间start_date = models.DateTimeField('start date', blank=True)
end_date = models.DateTimeField('end date', blank=True)
我有报告开始日期和报告结束日期。
我希望通过
检索报告所用的时间获取end_date并减去结束日期并将其四舍五入到最近的一天
def report_days(self):
return self.end_date - self.start_date
目前python shell返回此
>>> a.report_days()
datetime.timedelta(2, 65020, 613435)
答案 0 :(得分:1)
Django将DateTimeFields表示为Python datetime对象,因此减法的结果是datetime.timedelta
对象。要获得完整天数,您可以执行以下操作:
delta = self.end_date - self.pub_date
return delta.days
但这只算整天。要舍入到最近的一整天,您可以执行以下操作:
delta = self.end_date - self.pub_date
if delta.seconds / 3600 >= 12:
return delta.days + 1 # round up
else:
return delta.days # round down
有关详细信息,请参阅:http://docs.python.org/2/library/datetime.html#timedelta-objects