Как отсортировать интервалы в массиве от min к next min
у меня есть массив с интервалами:
[2022-01-01/2022-01-10], [2022-01-05/2022-01-7], [2022-01-07/2022-01-14], [2022-01-25]
мне бы хотелось их разбить на такие интервалы:
[2022-01-01/2022-01-5], [2022-01-05/2022-01-7], [2022-01-07/2022-01-10] , [2022-01-10/2022-01-14]
итд. как это сделать?
есть следующий массив с расписаниями, их вообще нужно объединять, но пока я хочу разделить их по интервалам:
var accessSchedules = new[]
{
new AccessScheduleCycle[]
{
// first schedule with intervals ( 1.1 - 1.10, 1.25 - .. )
new(
new LocalDateInterval( new LocalDate( 2022, 1, 1 ), new LocalDate( 2022, 1, 10 ) ),
new AccessScheduleCycleDay[]
{
new(new LocalTimeInterval[] {new(new LocalTime( 1, 00 ), new LocalTime( 3, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 2, 00 ), new LocalTime( 4, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 5, 00 ), new LocalTime( 8, 00 ))})
}
),
new(
new LocalDateInterval( new LocalDate( 2022, 1, 25 ) ),
new AccessScheduleCycleDay[]
{
new(new LocalTimeInterval[] {new(new LocalTime( 1, 00 ), new LocalTime( 3, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 2, 00 ), new LocalTime( 4, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 5, 00 ), new LocalTime( 8, 00 ))})
}
)
},
new AccessScheduleCycle[]
{
// second schedule with intervals ( 1.5 - 1.7, 1.7 - 1.14 )
new(
new LocalDateInterval( new LocalDate( 2022, 1, 5 ), new LocalDate( 2022, 1, 7 ) ),
new AccessScheduleCycleDay[]
{
new(new LocalTimeInterval[] {new(new LocalTime( 1, 00 ), new LocalTime( 5, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 2, 00 ), new LocalTime( 4, 50 ))})
}
),
new(
new LocalDateInterval( new LocalDate( 2022, 1, 7 ), new LocalDate( 2022, 1, 14 ) ),
new AccessScheduleCycleDay[]
{
new(new LocalTimeInterval[] {new(new LocalTime( 1, 00 ), new LocalTime( 5, 00 ))}),
new(new LocalTimeInterval[] {new(new LocalTime( 2, 00 ), new LocalTime( 4, 50 ))})
}
)
}
};
Я думаю, решив эту задачу, я смогу продвинуться в задаче с объединением расписаний. 