From a conceptual point of view, I would "translate" all times into seconds, add the seconds and as the very last operation show the accumulated seconds as "days - hours - minutes - seconds" which is easily done with a cascade of "modulo" and "integer divisions".
CountZero
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law