use Data::Simple qw(date); my $start = date('1940-02-12'); my $min = date('2007-05-01'); my $end = date('2010-08-23'); my $max = date('2008-04-30'); $start = $min if $star < $min; $end = $max if $max < $end; print "Duration: ", $end - $start, " date\n";