Ciao,
Nonostante possa sembrare... quel tempo
non è un numero... è una stringa formattata contenente dei punti (che secondo lo standard sono il separatore del punto decimale)... se non converti prima la stringa in un numero effettivo ci sono poche probabilità che una qualsiasi funzione di conversione (implicita) ti ritorni qualcosa di diverso da zero...
In generale il compilatore dovrebbe riuscire a "vedere" l'ora e i minuti... poi si trova davanti un punto e tronca li il resto della stringa... insomma finché non è passato almeno un minuto il tuo programma continua a fare divisioni per zero...
Ciaociao