Первым делом, советую взглянуть на картинку, в которой я попытался изобразить эти промежутки времени. Картинка
Кратенько опишу: есть текущий день (31), предыдущий и следующий. С 22:00 до 06:00 начинается «ночная» смена. Как посчитать, сколько времени («рабочего») попадет в «ночное» и «дневное» время?
Варианты работы: сутки; начинается в ночное, заканчивается в дневное; начинается в дневное, заканчивается в ночное; начинается и заканчивается в ночное; начинается и заканчивается в дневное.
Я ж сходу нагородил тысячу условий, вроде работало... Но потом полезли баги. Может подскажете, как это _нормально_ реализовать?