use strict; use warnings; use DateTime; my $dt1 = DateTime->new ( year => 2013, month => 9, day => 29, ); my $dt2 = DateTime->new ( year => 2013, month => 3, day => 29, ); my $dt3 = DateTime->new ( year => 2013, month => 3, day => 30, ); my $dur1 = $dt2->subtract_datetime($dt1); printf "29/03/2013 to 29/09/2013: %s months\n", $dur1->months; my $dur2 = $dt3->subtract_datetime($dt1); printf "30/03/2013 to 29/09/2013: %s months\n", $dur2->months;