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

Python中生成指定时段内所有30分钟步长的时间间隔组合

生成指定时间段内步长30分钟的所有时长组合

你可以先把目标时间段拆成按30分钟间隔的时间点序列,再用itertools.combinations()来生成所有符合要求的时间对——这个方法完全适用于时间对象,只要你先把时间点整理成可迭代的序列就行。

实现代码

from datetime import datetime, timedelta
import itertools

# 定义起始和结束时间
start_time = datetime.strptime("9:00", "%H:%M")
end_time = datetime.strptime("22:00", "%H:%M")

# 生成所有30分钟间隔的时间点
time_points = []
current = start_time
while current <= end_time:
    time_points.append(current)
    current += timedelta(minutes=30)

# 用combinations生成所有起始早于结束的时间对
for start, end in itertools.combinations(time_points, 2):
    print(f"{start.strftime('%H:%M')} - {end.strftime('%H:%M')}")

代码说明

  • 先把字符串格式的时间转成datetime对象,方便后续的时间运算
  • 通过循环生成所有间隔30分钟的时间点,直到达到结束时间
  • itertools.combinations(time_points, 2)会生成所有长度为2的不重复组合,且组合内的元素保持原序列的顺序,正好对应"起始时间在前,结束时间在后"的要求
  • 最后用strftime把时间对象转成你需要的HH:MM格式输出

运行这段代码就能得到你示例里的所有时长组合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:05:30