use DateTime; use DateTime::Event::Sunrise; use strict; my $timezone = "Pacific/Auckland"; my ( $latitude, $longitude ) = ( -36.55, 174.45 ); my $dt_start = DateTime->new( year => 2006, month => 3, day => 1, hour => 4, time_zone => $timezone, ); my $dt_end = $dt_start->clone()->add(days=>31); for ( my $dt = $dt_start->clone(); $dt < $dt_end; $dt->add(days=>1) ) { my $sset = DateTime::Event::Sunrise->sunset( longitude => $longitude, latitude => $latitude, altitude => '-0.833', iteration => '1' ); my $dt_ss = $sset->next($dt); print( "Sunset on " . $dt->strftime("%d %B %Y") . " at " . $dt_ss->strftime("%H:%M") . "\n" ); }