my $today = DateTime->today; my $last = DateTime->last_day_of_month( year => $today->year, month => $today->month );
my $diff = $last - $today; # using DateTime::Format::Duration my $fmt = DateTime::Format:::Duration->new( pattern => "%j days left" ); print $fmt->format_duration($diff), "\n" # since this is within the same month, you could # use in_units as well print $diff->in_units('days'), " days left\n"; --d Jay wrote:
How do I calculate the number of days left in the month? The best I could do was something like this, which doesn't really work: my $now = DateTime->now(); my $first_of_this_month = DateTime->new( month => $now->month(), day => 1, year => $now->year(), ); my $one_month = DateTime::Duration->new( months => 1 ); my $one_day = DateTime::Duration->new( days => 1 ); my $last_day_of_this_month = $first_of_this_month + $one_month - $one_day; my $d = DateTime::Format::Duration->new( pattern => '%e days left in this month' ); print $d->format_duration( $now - $last_day_of_this_month ), "\n"; Thanks, Jay