Надёжный метод разделяет полное время смены, перерыв и отработанное время. Такой итог легко проверить при изменении перерыва.

Сначала найдите полные минуты смены

Для смены 09:00–17:30 полная длительность равна 8 часам 30 минутам, то есть 510 минутам. Целые минуты исключают округление при сложении.

Вычтите только указанный перерыв

Неоплачиваемый перерыв 30 минут превращает 510 полных минут в 480 отработанных, то есть 8:00. WorkHours не придумывает перерыв и не решает, оплачивается ли он.

Сложите отработанные минуты, затем форматируйте

Сложите чистые минуты всех смен до перевода итога в Ч:ММ или десятичные часы. Так сохраняется точность до минуты. Правила перерывов вашей организации проверяйте отдельно.