我有两个约会时间对象
`statrt_time` and `end_time`我的代码是
if self.book_from and self.book_to:
fmt = '%Y-%m-%d %H:%M:%S'
s = datetime.strptime(self.book_from,fmt) #start date
e = datetime.strptime(self.book_to,fmt) #end date
diff = e - s
total_seconds=diff.seconds
time_diff = (total_seconds/3600.0)
no_of_units = (time_diff/4)
if(e<s):
self.units = 0
else:
self.units = math.ceil(no_of_units)在这里,当我在同一天内减去时间时,它给出了正确的差别。但是,当日期改变时,它不是计算日差,而是只计算时差。怎样才能把日差也加进去?
发布于 2016-04-13 05:47:07
使用total_seconds()而不是seconds。
timedelta.seconds只显示差异的“第二”部分,而total_seconds()则显示差的持续时间(以秒为单位)。有关更多详细信息,请参阅Mureinik's answer。
所以,用这个:
total_seconds=diff.total_seconds()发布于 2016-04-13 05:52:34
total_seconds是一个timedelta对象,它使用三个字段( days、seconds和miliseconds )存储两个日期时间之间的差异。您的代码片段只是使用seconds属性,而不是使用整个差异。total_seconds()方法为您处理这个问题,并返回两个数据之间的总秒数。
发布于 2016-04-18 06:25:25
我有另一种方法..。但是在附近工作..。
if self.book_from and self.book_to:
fmt = '%Y-%m-%d %H:%M:%S'
s = datetime.strptime(self.book_from,fmt) #start date
e = datetime.strptime(self.book_to,fmt) #end date
diff = e - s
days=diff.days// convert difference to day instead of seconds//
days_seconds=0
if(days>0): //Checking whether the difference exceeds a day//
days_seconds=days*24*3600 //If so convert it to seconds//
total_seconds=diff.seconds+days_seconds
time_diff = (total_seconds/3600.0)https://stackoverflow.com/questions/36589557
复制相似问题