programa de ciclos largos

Hola, mi consulta es la siguiente, soy nuevo en el tema, estoy haciendo un ciclador, necesito habilitar una salida en ciclos largos, algunos de 20 minutos y otros hasta 8 horas, hasta el momento usaba la función de delay(); que esta en mili-segundo, pero ahora como la espera son de varios minutos y hasta horas, ¿es conveniente que use esta función o que puedo hacer?.
Ejemplo de lo que necesito hacer, prender una lampar por 8 horas, luego que permanezca prendida por 8 horas y se vuelva apagar por 8 horas ... y así.
tengo una placa Arduino Mega y un Arduino nano
gracias.