2024-06-06 12:04:02 发布
网友
我正在使用python,想计算两次之间的差异。
实际上,我有一个场景来计算登录和注销时间之间的差异, 例如,在组织中,工作时间有一些特殊的限制,所以 如果用户早上在9:00 AM登录,晚上在6:00 PM注销, 我们需要计算他在办公室呆了多长时间(在本场景中是9 hours),但我想用python来完成这项工作,所以有人能告诉我如何实现上述计算登录和注销时间差的概念吗?
9:00 AM
6:00 PM
9 hours
>>> 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将给出
在我看来,@Fabian的回答可能是最好的。但我们是不是让这件事变得比必须的更困难?
你需要按天、月、年计算吗?
如果您正在生成这个,那么使用timesec表示会更容易吗?
当用户登录时:
当用户再次访问时:
然后检查时间差是否大于XXXX秒?现在我假设您要检查用户是否在XX分钟或XX小时内没有登录?
否则,我将强调@Fabian的答案是最好的,如果您正在分析时间-日期字符串,或者需要对数据执行其他时间/日期函数。
我还要强调的是,如果你使用这个方法,为时间设置常量,或者确保对它们进行注释,以使其更具可读性。
但是如果你只是想知道用户在过去30分钟内是否已经打开,这可能会更容易。
使用divmod执行此任务
divmod将给出
相关问题 更多 >
编程相关推荐