我有两个日期时间对象
`statrt_time` and `end_time`
Run Code Online (Sandbox Code Playgroud)
我的代码是
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)
Run Code Online (Sandbox Code Playgroud)
在这里,当我在同一天减去时间时,它给出了正确的差异.但是当这一天改变时,它不是计算日差,而只是计算时差.我怎样才能增加日差?
用total_seconds()而不是seconds.
timedelta.seconds只显示差异的"第二"部分,同时total_seconds()显示差异的持续时间(秒).有关详细信息,请参阅Mureinik的答案.
所以,使用这个:
total_seconds=diff.total_seconds()
Run Code Online (Sandbox Code Playgroud)