разделение и объединение перекрывающихся интервалов dateTime - PullRequest
0 голосов
/ 26 марта 2019

У меня есть arrayList интервалов dateTime (из библиотеки joda-time), и каждый из них привязан к значению int.например:

[(9: 00,17: 00,0), (17: 00,19: 00,25), (19: 00,20: 00,50), (9:00, 20: 00,50)]

Я хочу объединить интервалы, чтобы ни один из них не перекрывался, но части, которые не пересекаются, станут независимым интервалом, вложения int будут сливаться друг с другом в перекрытиичастей.в приведенном выше примере мне нужен этот результат:

[(9: 00,17: 00,50), (17: 00,19: 00,75), (19: 00,20: 00,100)]

  • более 2 интервалов могут перекрываться \ содержать друг друга
  • на входе никогда не будет пропусков (интервалы отделяются от базового интервала).

другой пример, если это помогает:

input: [(8: 00,16: 00,0), (16: 00,18: 00,25), (18: 00,21: 00,50)), (8: 00,18: 00,50)]

выход: [8: 00,16: 00,50), (16: 00,18: 00,75) (18:00,21: 00,50)]

...