Como gerar DateTime :: Duration apenas em dias?
Este código encontra a diferença entre hoje e uma data fix
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use DateTime ();
use DateTime::Duration ();
use DateTime::Format::Strptime ();
my $date = "23/05-2022";
my $parser = DateTime::Format::Strptime->new(
pattern => '%d/%m-%Y',
time_zone => 'local',
);
$date = $parser->parse_datetime($date);
my $today = DateTime->today(time_zone=>'local');
my $d = DateTime::Duration->new($today - $date);
print Dumper $d->delta_days;
O problema é que isso gera apenas 22 dia
Se eu fizerprint Dumper $d;
Eu posso ver os -130 meses também.
$VAR1 = bless( {
'seconds' => 0,
'minutes' => 0,
'end_of_month' => 'preserve',
'nanoseconds' => 0,
'days' => -22,
'months' => -130
}, 'DateTime::Duration' );
Como faço para que ele produza o resultado em dias?
Fazendo
print Dumper $d->delta_days + $d->delta_months*30;
não parece uma solução elegant