#!/usr/bin/perl use strict; use warnings; use Astro::Sunrise qw(sun_rise sun_set); sub tmath { my ($time, $offset) = @_; my ($hour, $minutes) = split(/:/,$time); $hour += $offset; return "$hour:$minutes"; } my $user_lon = -77.314444; my $user_lat = 39.534444; my $user_spot = { lon => $user_lon, lat => $user_lat }; my $noon = '12:00'; my $dawn = sun_rise($user_spot); my $dusk = sun_set ($user_spot); my %dayparts = ( 'morning' => { 'begin' => $dawn, 'end' => $noon}, 'afternoon' => { 'begin' => $noon, 'end' => tmath($dusk, -1) }, 'evening' => { 'begin' => tmath($dusk, -1) , 'end' => tmath($dusk, 1) }, 'night' => { 'begin' => tmath($dusk, 1) , 'end' => $dawn} );