Как отсортировать интервалы в массиве от 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 ))})                                  
            }                                                                                                                       
        )                                                                                                                           
    }                                                                                                                               
};                                                                                                                                  

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


Ответы (0 шт):