Photoresistor power switch for arduino, does this look correct
Daniel has an excellent approach - keep the microcontroller powered and alive always.
Since a photoresistor has high resistance in darkness, use it to charge a capacitor on one of the microcontroller's input pins. It will charge slowly in darkness, much faster when illuminated. Any microcontroller is very adept at measuring this charge time.







simulate this circuit &ndash; Schematic created using CircuitLab

Perhaps the photoresistance rises to 500Kohms as darkness approaches. If C1 starts at zero volts (discharged), it's voltage will rise exponentially to about 3V in half a second. In total darkness, charge time will be longer.
Leakage currents of the input pin have not been accounted for, but are usually quite small.
Once a logic high has been sensed at the input pin, you can change it to be an output pin, so that C1 can be discharged back to zero volts. This will take about 500 microseconds. Once discharged back to zero volts, the pin is changed back to an input pin, and a timer is started. When the input pin changes from logic 0 to logic 1, the timer is stopped - the time taken is a measure of "darkness".

It is also possible to use the microcontroller's analog-to-digital converter to measure the speed of voltage rise on C1.

Most microcontrollers have a low-power state that draws very little current from its supply (V1). If current consumption from the supply is to be minimized, the microcontroller can spend most of its time asleep, awakening once in awhile to test for darkness. In this case, C1 might be made much smaller to minimize the time taken for its voltage to rise.
Do keep LDR1 optically isolated from the LED light sources.