Delay/Sleep for 8 hours?

In that case, you need to record millis() at the start of your sleep, then have a loop that checks the sleep button, then checks whether millis() has increased by 32,400,000 since the start.