Вчера не было времени рефакторить, взял твою реализацию, сегодня попробовал написать свою.
Твоя, кстати ломается, если передать не 09:00, а 08:00 или 03:00, к примеру.
В общем понял, что работать со строками, такое себе удовольствие, проще посчитать интервал, как по мне.
Сначала кстати написал какую-то хрень, когда хотел делать проверку на перерыв, типа такого:
if (breakStart && breakEnd) {
if () {
}
} else {
}
Посмотрел как ты написал, думаю, о, это чётко.
Короче, такой код получился у меня.