You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从时间数组中查找与当前时间最接近的20分钟间隔

问题与解决方案

问题描述

我有如下格式的日期时间数组:

[["2023-Aug-08", "00:00", "302.218616", "-21.391909"],
["2023-Aug-08", "00:20", "306.564766", "-24.382470"],
["2023-Aug-08", "00:40", "311.149963", "-27.204929"]
...
]

每个数组元素的时间间隔为20分钟,覆盖全天24小时。我希望从中查找与当前时间最接近的时间间隔:例如当前时间为2:34时,获取对应2:40的元素索引;当前时间为2:29时,获取对应2:20的元素索引。我正在使用time库获取小时和分钟的字符串形式,但不清楚如何将其与数组中的时间进行比较。

解决方案

核心是把时间转换为从0点开始的总分钟数,通过数值运算快速定位目标时间对应的索引,无需直接比较字符串。

方法一:计算总分钟数匹配(通用版)

适用于数组时间顺序不确定的情况:

  1. 转换当前时间为总分钟数
import time

# 获取当前时间的小时和分钟,转为总分钟数
current_time = time.localtime()
current_total_min = current_time.tm_hour * 60 + current_time.tm_min
  1. 预处理数组时间
    把数组中每个时间字符串转成总分钟数,同时记录对应索引:
data = [
    ["2023-Aug-08", "00:00", "302.218616", "-21.391909"],
    ["2023-Aug-08", "00:20", "306.564766", "-24.382470"],
    ["2023-Aug-08", "00:40", "311.149963", "-27.204929"],
    # 其他元素...
]

time_with_index = []
for idx, item in enumerate(data):
    hour, minute = map(int, item[1].split(':'))
    time_with_index.append( (hour * 60 + minute, idx) )
  1. 定位目标时间
    根据当前总分钟数,计算最接近的20分钟整倍数,再匹配对应索引:
interval = 20
remainder = current_total_min % interval

# 按需求判断向上/向下取整:余数>10则向上,否则向下
if remainder > interval // 2:
    target_min = current_total_min + (interval - remainder)
else:
    target_min = current_total_min - remainder

# 找到对应索引
for total_min, idx in time_with_index:
    if total_min == target_min:
        target_index = idx
        break

print(f"目标元素索引:{target_index}")

方法二:直接计算索引(高效版)

如果数组严格按00:00、00:20、00:40...顺序排列,可以直接通过数学运算得到索引,无需遍历数组:

import time

current_time = time.localtime()
current_total_min = current_time.tm_hour * 60 + current_time.tm_min
interval = 20
remainder = current_total_min % interval

if remainder > interval // 2:
    target_index = (current_total_min + (interval - remainder)) // interval
else:
    target_index = (current_total_min - remainder) // interval

# 处理跨天边界(比如23:50取00:00的情况,按需调整)
target_index = target_index % 72  # 全天共72个20分钟间隔

print(f"目标元素索引:{target_index}")

内容的提问来源于stack exchange,提问作者warherolion

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:52:48