use Date::Calc qw( Today Date_to_Days Now ); # Lower Limit my $year1 = 2001; my $month1 = 7; my $day1 = 6; my $hour1 = 20; my $min1 = 00; my $minlower = ($hour1 * 60) + $min1; # Upper Limit my $year2 = 2001; my $month2 = 7; my $day2 = 6; my $hour2 = 20; my $min2 = 59; my $minupper = ($hour2 * 60) + $min2; # Current System Time my $now = localtime(); print $now, "\n"; # Get current time from module ($year,$month,$day) = Today(); ($hour,$min,) = Now(); my $minnow = ($hour * 60) + $min; print "It is now $hour:$min or $minnow minutes since midnight\n"; $lower = Date_to_Days($year1,$month1,$day1); $upper = Date_to_Days($year2,$month2,$day2); $date = Date_to_Days($year, $month, $day); print "$lower=lower\t$upper=upper\t$date=date\n"; if (($date >= $lower) && ($date <= $upper)) { if (($date != $lower) && ($date != $upper)) { print "Not on a start and stop day\n"; }elsif (($date == $lower) && ($date == $upper)) { print "same start and stop date\n"; if (($minnow >= $minlower) && ($minnow < $minupper)) { print "match on dates and mins within range\n"; }else{ print "BUT not within minute range\n"; exit(); } }elsif (($date == $lower) && ($minnow < $minlower)) { print "before start time\n"; exit(); }elsif (($date == $upper) && ($minnow > $minupper)) { print "after end time\n"; exit(); } print "GOOD\n"; }else{ print "out of range\n"; }