This outputs the days:
#!/usr/bin/perl -l
use strict;
use warnings;
use Data::Dumper;
use DateTime;
my $bday = DateTime->new(
year => 2009,
month => 3,
day => 13,
hour => 8,
minute => 16,
second => 30,
nanosecond => 0,
time_zone => 'America/New_York',
);
my $now = DateTime->now;
my $dtd1 = $now->subtract_datetime($bday);
print $dtd1->years . ' years';
print $dtd1->months . ' months';
print $dtd1->weeks . ' weeks';
print $dtd1->days . ' days';
print $dtd1->hours . ' hours';
print $dtd1->minutes . ' minutes';
print $dtd1->seconds . ' seconds';
print $dtd1->nanoseconds . ' nanoseconds';
Output:
3 years
4 months
3 weeks
0 days
18 hours
7 minutes
49 seconds
0 nanoseconds