[Paulo's] garden lights are probably a bit more accurately automated than anyone else’s on the block, because they use latitude and longitude clock to decide when to flip the switch. Most commercial options (and hobbiest creations) rely on mechanical on/off timers that click on an off every day at the same time, or they use a photosensitive element to decide it’s dark enough. Neither is very accurate. One misplaced leaf obscuring your light-dependent resistor can turn things on unnecessarily, and considering the actual time of sunset fluctuates over the year, mechanical switches require constant adjustment.
[Paulo's] solution addresses all of these problems by instead relying on an algorithm to calculate both sunrise and sunset times, explained here, combined with swiftek’s Timelord library for the Arduino. The build features 4 7-segment displays that cycle through indicating the current time, time of sunset and of sunrise. Inside is a RTC (real time clock) with battery backup for timekeeping along with an Omron 5V relay to drive the garden lamps themselves. This particular relay comes with a switch that can force the lights on, just in case.
Check out [Paulo's] project blog for the full write-up, links to code and more details, then take a look at some other home automation projects, like the SMS-based heater controller or occupancy-controlled room lighting.