Дельту времени можно передавать аргументом в UpdateWorkingTime. Тогда не придется дважды вычислять ее.
Это, конечно, копейки с т.зр. процессорного времени. Но логика какая-то странная получается.