ну да, одно условие - что бы длительности были меньше 24ч.
-----------
алгоритм на самом деле мега простой.
представим всё на прямой.
сделаем, что бы "А.нач" - бало началом координат, тогда (В.нач-А.нач)=В.нач.new в новых координатах
а координаты А.кон численно совпадают с А.длит
соответственно "интервал В" внутри "интервала А", если В.нач и В.кон лежит в диапазоне [0;A.длит]
ну и последний "костыль" - это избавляемся от минуса в выражении (В.нач-А.нач)=В.нач.new
PS добавлю, что т.к. В.нач мы "нормализуем" относительно А.нач, то В.кон может быть больше 24ч от "начала координат"



Ответить с цитированием
Я пытался в своем варианте реализовать подсчет от начала суток, и пришлось задействовать вторые сутки, факт перехода через полночь, проверять отдельно начало, отдельно окончание, и отдельно(как потом выяснилось) нет ли отключения в середине, когда неожиданно выяснилось, что если В включено про работающем А, и выключено при работающем А, то совершенно не факт, что А работало между этими двумя точками 