繁体   English   中英

计算python中两次之间的差异

[英]Calculate the difference between two times in python

我正在使用python,并希望计算两次之间的差异。

实际上我有计算登录和注销时间之间差异的方案,例如在组织中有一些特定的工作时间限制,因此如果用户在9:00 AM登录并且他在6:00 PM退出在晚上,我们需要计算他在办公室呆了多长时间(在目前的情况下是9 hours ),但我想在python中这样做,所以任何人都可以让我知道如何实现上述概念计算登录和注销时间之间的差异?

>>> start = datetime.datetime(year=2012, month=2, day=25, hour=9)
>>> end = datetime.datetime(year=2012, month=2, day=25, hour=18)
>>> diff = end - start
>>> diff
datetime.timedelta(0, 32400)
>>> diff.total_seconds()
32400
>>> diff.total_seconds() / 60 / 60
9
>>> 

使用divmod完成此任务

>>> start = datetime.datetime.utcnow()
>>> end = datetime.datetime.utcnow()
>>> divmod(end - start, 60)
(0, 2.454) # (minutes, seconds)

divmod会给

在我看来,@ Fabian的回答可能是最好的。 但是,我们是否比这更困难?

你需要按日,月,年计算吗?

如果你正在生成这个,那么使用timesec表示会不会更容易?

用户登录时:

user_login_time = time.time()

当用户重新访问时:

time_difference = time.time() - user_login_time

然后检查time_difference是否高于XXXX秒? 现在我假设您只是要检查用户是否未登录XX分钟或xx小时?

否则,我会强调@ Fabian的答案是最好的,如果你正在寻找解析时间日期字符串,或者需要用数据做其他时间/日期函数。

我还要强调,如果你使用这个方法,为时间制作常量,或者确保对它们进行评论,以使其更具可读性。

但是,如果您只是想在过去30分钟内找出用户是否已经开启,那么这可能会更容易。

您使用错误的类来表示时间。

> import datetime
> print datetime.datetime.now() - datetime.datetime(2013, 1, 1)
55 days, 14:11:06.749378

返回的对象是timedelta 但差异当然是在datetime对象之间计算的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM