Я сомневаюсь, что вы хотите список рабочих и нерабочих дней.
Название вашего вопроса предполагает, что вы хотите знать, работала ли система в определенную дату. Также кажется разумным рассчитать% времени безотказной работы. Ни один из них не требует составления списка всех временных моментов в интервале.
Сортировать время обслуживания. По первому вопросу выполните BinarySearch на дату, о которой вы заботитесь, и проверьте, была ли предыдущая запись переведена в автономный режим или переведена в эксплуатацию. Для% безотказной работы возьмите попарно (вниз для обслуживания, восстановлено обслуживание), используйте вычитание, чтобы найти продолжительность обслуживания, сложите их. Затем используйте вычитание, чтобы найти длину общего интервала.
Если ваш вопрос на самом деле не означал, что вы отслеживали интервалы обслуживания (или эквивалентные интервалы использования), то вы можете проигнорировать этот ответ.