Clock with Arduino

More questions than answers, really. Why are disabling interrupts before calling millis?

Why are you calling delay?

There are more efficient ways of computing new values for minutes and hours. minutes only needs to be updated if seconds has reached 60. An if test (if seconds == 60) and two assignments (seconds = 0; minutes++;) is faster than the call to the modulo function. The same hold true for hours. hours only needs to change when minutes equals 60. hours can be reset to 0 faster using an if test than a modulo function call, too.