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

合并Schedule与Registered列表实现完整时长覆盖的技术问询

解决方案:基于Schedule总时长与Registered时间间隔生成完整时间段列表

嘿,我来帮你拆解这个需求,核心就是要兼顾两个目标:先把Registered里的所有时间间隔都完整覆盖,再把Schedule里的总时长彻底耗尽。我给你一步步捋清楚逻辑,再举个实际例子让你一眼明白。

核心逻辑拆解

  • 第一步:优先复用Registered的时间间隔
    先把Registered列表里的所有时间段原封不动地放进新列表中,同时统计这些时间段的累计时长。用Schedule的总时长减去这个累计值,就能得到还需要填充的剩余时长。
  • 第二步:按规则补全剩余时长
    根据需求里提到的「对应类型」(通常是沿用Registered最后一个时间段的类型,或者有预设的类型规则),持续生成新的时间段:
    • 如果剩余时长≥预设的时间间隔,就生成一个对应类型+预设间隔的时间段,剩余时长同步扣除该间隔;
    • 如果剩余时长<预设间隔,直接生成一个对应类型+剩余时长的时间段,把最后一点时长耗尽。

实际示例(更直观)

假设我们有以下输入:

  • Schedule总时长:10小时
  • Registered列表:[("会议", 2小时), ("研讨", 3小时)](用「类型+时长」的元组表示每个时间段)

第一步:计算已用时长

Registered的累计时长 = 2 + 3 = 5小时,剩余需填充时长 = 10 - 5 = 5小时

第二步:补全剩余时长(假设规则:沿用最后一个类型「研讨」,按2小时固定间隔生成)

  1. 生成第一个补全段:("研讨", 2小时),剩余时长变为5-2=3小时
  2. 生成第二个补全段:("研讨", 2小时),剩余时长变为3-2=1小时
  3. 生成最后一个补全段:("研讨", 1小时),剩余时长变为0,总时长耗尽

最终生成的新列表

[("会议", 2小时), ("研讨", 3小时), ("研讨", 2小时), ("研讨", 2小时), ("研讨", 1小时)]

额外注意点

  • 如果Registered是空列表,那直接从预设的初始类型开始,按规则生成时间段直到耗尽Schedule总时长即可;
  • 关于「对应类型」的规则,如果需求里有特殊定义(比如剩余时长>3小时用「培训」类型,否则用「答疑」),一定要把规则明确后再落地;
  • 全程要保证时长单位统一,别出现分钟、小时混用的情况,避免计算错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:13:06