首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中减去两次

在python中减去两次
EN

Stack Overflow用户
提问于 2011-03-10 20:55:48
回答 10查看 175.6K关注 0票数 145

我有两个datetime.time值,exitenter,我想这样做:

代码语言:javascript
复制
duration = exit - enter

然而,我得到了这个错误:

TypeError:-不支持的操作数类型:'datetime.time‘和'datetime.time

我怎样才能正确地做到这一点?一种可能的解决方案是将time变量转换为datetime变量,然后再转包,但我相信你们肯定有更好、更干净的方法。

EN

回答 10

Stack Overflow用户

发布于 2011-03-10 20:58:56

试试这个:

代码语言:javascript
复制
from datetime import datetime, date

datetime.combine(date.today(), exit) - datetime.combine(date.today(), enter)

combine构建了一个可以减去的datetime。

票数 108
EN

Stack Overflow用户

发布于 2016-09-23 09:07:31

使用:

代码语言:javascript
复制
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()可能不会返回意外结果。

票数 57
EN

Stack Overflow用户

发布于 2016-07-07 20:26:01

不要使用时间,而是尝试使用timedelta:

代码语言:javascript
复制
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)
票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5259882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档