我有多个日期范围,每个日期范围都有一个开始和结束日期/时间,包含一个我想从中创建新范围的值,其中重叠的范围值被附加到一个切片中。
日期/时间范围如下:
[10:00, 10:15] = 7
[10:10, 10:20] = 9
[10:05, 10:25] = 2
[现在 11:00] = 3
为了更好地说明它,请看下图(我在这里只使用了几次,以简化它):
在图像上,日期范围 [10:00, 10:15] 包含值 7,[10:10, 10:20] = 9 等等。
我需要生成以下日期范围,其中重叠的范围值合并在一起:
[10:00, 10:05] = 7
[10:05, 10:10] = 7,2
[10:10, 10:15] = 7,2,9
[10:15, 10:20] = 2,9
[10:20, 10:25] = 2
[10:25, 11:00] = 2 <-- 这是一个间隙,没有重叠,也不是连续的。
[现在 11:00] = 3
我用一个结构来表示一个范围
type Range struct { Start time.Time End time.Time Values []int }
有没有一种简单有效的方法来做到这一点?
翻翻过去那场雪
相关分类