something like the following (not tested nor compiled, just for example):
long startdarkness=0, lastread=0;
void setup(){
}
void loop(){
if ((millis()-lastread)>10000)){ // first read after 10 secs since start
if (checkligth() { // ligth outside
startdarkness=0;
lastread=millis(); // store last check time
}
else{ //dark outside
if(stardarkness==0) // no darkness in previous check
startdarkness=millis();
}
}
if( (millis()-startdarknes)< LAPTIME){
//... DO YOUR STUFF....
}
menu.draw();
}
byte checkligth(){
// this function must return 0 if dark, 1 otherwise
}
by the way what is readbuttons()?