【发布时间】:2019-08-28 23:16:10
【问题描述】:
已编辑(澄清我的目的)
我需要写一个函数,将一个小时分成12个区间,找出当前时间在哪个区间,然后计算当前时间与较大区间边界的时间差,例如第0分钟、第5分钟、第10分钟等等……
示例
当前时间为15:28:07,较大区间边界为15:30:00
当前时间为03:00:00,较大的区间边界为03:05:00
当前时间为23:59:59,较大区间边界为00:00:00
我尝试了什么
我浏览了一堆帖子,但几乎所有帖子都有用户预先定义的时间。这是我的草稿:
from datetime import datetime
now = datetime.now()
currentMin = now.minute
# Some code to figure out what the larger interval boundary is
boundary = ?
target = datetime(now.year,now.month,now.date,now.hour,boundary)
duration = target-now
sleepTime = round(duration.total_seconds(),2)
time.sleep(sleepTime)
# Some other code
为了找到下一个第 5 分钟,我有一个所有边界的列表,我计划运行循环以查看 currentMin 属于哪个区间,然后将区间的较大值分配给 boundary
interval = [0,5,10,15,20,25,30,35,40,45,50,55,60]
问题
第一是效率,每次迭代从列表中抓取两个数字并与currentMin进行比较,但我的整个程序对时间非常敏感。
2nd 是极端情况,我需要处理55 < currentMin < 60 的情况,以及下一个 5 分钟是第二天的情况(示例中的最后一个情况)。
有没有更好的方法/简单的方法来实现这一点?是否有内置命令可以帮助您轻松找到这样的时间标记。
【问题讨论】: