我有不同的身份证,开始日期和结束日期,
比如说:[
(5, d.datetime(2010, 9, 19, 0, 0, 0), d.datetime(2010, 9, 19, 0, 5, 10)),
(6, d.datetime(2010, 9, 19, 0, 0, 0), d.datetime(2010, 9, 19, 12, 59, 59)),
(4, d.datetime(2010, 9, 19, 10, 30, 17), d.datetime(2010, 9, 19, 20, 20, 59)),
(6, d.datetime(2010, 9, 19, 14, 12, 0), d.datetime(2010, 9, 19, 23, 59, 59)),
(5, d.datetime(2010, 9, 19, 17, 0, 22), d.datetime(2010, 9, 19, 19, 14, 20))
]
我需要找到重叠的时间范围,并准备一个新的列表,在特定的时间范围内有适当的ID,例如上面的列表结果应该是:
^{pr2}$
视觉概念:
实际上现在我有这样的解决方案:我得到整个范围的最小和最大日期,然后每1秒从min_date迭代到max_date,当在特定的时刻我们匹配目标列表中的一些间隔时,我将匹配的id保存为dictionary key,并将iterator到list的时间作为value,