A livello basilare .... basta che usi proprio quei calcoli (divisioni ecc) che hai fatto. Se quel campo della durata non è zero, componi la stringa già con quel valore. Tutto qui.
Se poi vuoi, ci sono sicuramente librerie esterne specifiche. La ben nota Joda-Time mi pare che consenta la formattazione di una Duration (non ne sono sicuro al 100% ma potrei verificare).
P.S. tra l'altro i calcoli che hai fatto sarebbero da rivedere un attimo. Nel senso: se vuoi che se l'ora è 0 non la stampi, devi cambiare il calcolo.