а для второй коечно уже напрашивается ООП подход.. когда будут обьекты интервала, которые сами себя будут изменять. ну и это. у тебя нет удаления интервалов, если они полностью перекрыты
Да, ООП тут явно не хватает. Не сложный код, но толсто для контроллера