Si, ma è sbagliato ... uno ha delle funizionalità e mette a disposzione della RAM salvata dalla batteria, l'altro NON ha detta RAM ed ha degli allarmi programmabili ... per ciascun modulo è bene usare la specifica libreria che mette a disposizione le giuste risorse.
Detto questo credo che tm.Hour sia già un numero, per l'esattezza un uint8_t quindi un byte ... almeno leggendo il sorgente della libreria ... ![]()
Piuttosto, tu QUALE libreria stai usando? metti un link che, per il DS1307, ce ne è un'infinità ...
Guglielmo