我有两个datetime.time
值,exit
和enter
,我想这样做:
duration = exit - enter
然而,我得到了这个错误:
TypeError:-不支持的操作数类型:'datetime.time‘和'datetime.time
我怎样才能正确地做到这一点?一种可能的解决方案是将time
变量转换为datetime
变量,然后再转包,但我相信你们肯定有更好、更干净的方法。
发布于 2011-03-10 20:58:56
试试这个:
from datetime import datetime, date
datetime.combine(date.today(), exit) - datetime.combine(date.today(), enter)
combine
构建了一个可以减去的datetime。
发布于 2016-09-23 09:07:31
使用:
from datetime import datetime, date
duration = datetime.combine(date.min, end) - datetime.combine(date.min, beginning)
使用date.min
更加简洁,即使在午夜也能正常工作。
如果第一次调用发生在23:59:59,下一次调用发生在00:00:00,则date.today()
可能不会返回意外结果。
发布于 2016-07-07 20:26:01
不要使用时间,而是尝试使用timedelta:
from datetime import timedelta
t1 = timedelta(hours=7, minutes=36)
t2 = timedelta(hours=11, minutes=32)
t3 = timedelta(hours=13, minutes=7)
t4 = timedelta(hours=21, minutes=0)
arrival = t2 - t1
lunch = (t3 - t2 - timedelta(hours=1))
departure = t4 - t3
print(arrival, lunch, departure)
https://stackoverflow.com/questions/5259882
复制相似问题