用python计算两次之间的差

2024-06-06 12:04:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

实际上,我有一个场景来计算登录和注销时间之间的差异, 例如,在组织中,工作时间有一些特殊的限制,所以 如果用户早上在9:00 AM登录,晚上在6:00 PM注销, 我们需要计算他在办公室呆了多长时间(在本场景中是9 hours),但我想用python来完成这项工作,所以有人能告诉我如何实现上述计算登录和注销时间差的概念吗?


Tags: 用户概念时间场景差异am办公室多长时间
3条回答
>>> 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
>>> 

在我看来,@Fabian的回答可能是最好的。但我们是不是让这件事变得比必须的更困难?

你需要按天、月、年计算吗?

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

当用户登录时:

user_login_time = time.time()

当用户再次访问时:

time_difference = time.time() - user_login_time

然后检查时间差是否大于XXXX秒?现在我假设您要检查用户是否在XX分钟或XX小时内没有登录?

否则,我将强调@Fabian的答案是最好的,如果您正在分析时间-日期字符串,或者需要对数据执行其他时间/日期函数。

我还要强调的是,如果你使用这个方法,为时间设置常量,或者确保对它们进行注释,以使其更具可读性。

但是如果你只是想知道用户在过去30分钟内是否已经打开,这可能会更容易。

使用divmod执行此任务

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

divmod将给出

相关问题 更多 >