先把时间范围和暂停记录写清楚
假设一面虚构的墙钟显示,比赛从14时00分开始,到16时00分结束。墙钟覆盖的总时长是:
16时00分−14时00分=120分钟
已记录的暂停有三段:
- 14时30分至14时50分,共20分钟;
- 14时45分至15时00分,共15分钟;
- 15时40分至15时45分,共5分钟。
这里先假设所有时间使用同一面墙钟,暂停的起止点都已经确定,而且只计算记录中明确出现的暂停。这个计算不判断暂停原因,也不推断记录之外是否还有其他停顿。
为什么直接相加会多算
前两段暂停分别是14时30分至14时50分和14时45分至15时00分。第二段从14时45分开始时,第一段还没有结束,因此14时45分至14时50分这5分钟同时出现在两条记录中。
如果直接相加,结果是:
20+15+5=40分钟
这个40分钟是错误的去重结果,因为其中的5分钟被算了两次。把比赛总时长120分钟直接减去40分钟,也会得到错误的结果:
120−40=80分钟
问题不在减法,而在暂停总时长尚未完成区间去重。区间重叠时,应该计算这些暂停时间覆盖了多长的连续时间,而不是计算记录条目的时长总和。
按排序合并区间的步骤
第一步:按开始时间排序。本例已经是14时30分、14时45分、15时40分的顺序。如果原始记录顺序混乱,先按照每段的开始时刻从早到晚排列。
第二步:先取第一段作为当前合并区间。当前区间为14时30分至14时50分。
第三步:检查下一段是否与当前区间重叠。下一段是14时45分至15时00分。因为14时45分早于当前区间的结束时间14时50分,所以两段重叠。合并后,开始时间仍是14时30分,结束时间取较晚的15时00分,得到:
14时30分至15时00分,共30分钟。
第四步:继续检查下一段。15时40分至15时45分与14时30分至15时00分没有重叠,中间还有40分钟间隔,因此不能并入前一个区间。保留为独立区间:
15时40分至15时45分,共5分钟。
| 合并后的区间 | 计算 | 去重后时长 |
|---|---|---|
| 14时30分至15时00分 | 15时00分−14时30分 | 30分钟 |
| 15时40分至15时45分 | 15时45分−15时40分 | 5分钟 |
所以,去重后的暂停总时长为:
30+5=35分钟
从墙钟总时长中扣除暂停
在上述假设下,调整后的时长是墙钟覆盖时间减去去重后的暂停时间:
120−35=85分钟
因此,本题的计算结果是:记录中的暂停覆盖35分钟,扣除这些已知暂停后,剩余85分钟。
85分钟代表什么,又不代表什么
85分钟只表示在本虚构示例中,从14时00分到16时00分的墙钟区间里,扣除了已经记录并完成去重的暂停区间。它不等于球实际飞行的时间,也不等于双方实际进行击球回合的总时长。球与球之间的间隔、局间休息、换边、裁判处理、医疗流程或其他未被记录的停顿,可能需要按照另外的时间定义处理。
同样,是否应把某个时间段认定为“暂停”,取决于原始记录的定义和具体赛事的计时规则。若时间戳只有分钟而没有秒,边界处还可能存在四舍五入误差。实际复核时,应保留每条原始记录、统一时区和时间格式,并明确是计算墙钟覆盖时长、暂停并集,还是赛事官方公布的净比赛时长。