У меня есть проблема, пытающаяся разработать правильный алгоритм для расчета набора диапазонов даты.
В основном у меня есть список неупорядоченных диапазонов даты (список, содержащие массивы начала и времени окончания), и я хочу консолидировать этот список, чтобы он не содержит перекрытие.
В основном для укрепления двух диапазонов даты:
if start1 <= end2 and start2 <= end1 //Indicates overlap
if start2 < start1 //put the smallest time in start1
start1 = start2
endif
if end2 > end1 //put the highest time in end1
end1 = end2
endif
endif
это присоединяется к двум датам.
Я ударил камень блок, когда речь идет о итерации через все значения, поэтому список концов содержит только значения, которые не перекрывают.
Мое функциональное и рекурсивное программирование немного ржаво, и любая помощь будет приветствоваться.