#!/usr/bin/perl
use DateTime;
$a = DateTime->new(year=>1952,month=>10,day=>21);
$b = DateTime->new(year=>2015,month=>10,day=>31);
$dif = $b-$a;
print $dif->years() ." ". $dif->months() ." ". $dif->days();
# result: 63 0 3
Da dove vengono i 3 giorni? Mi aspetto 63 0 10.Perché questo perl DateTime matematica produce risultati imprevisti?
#!/usr/bin/perl
use DateTime;
$a = DateTime->new(year=>1952,month=>11,day=>1);
$b = DateTime->new(year=>2015,month=>10,day=>31);
$dif = $b-$a;
print $dif->years() ." ". $dif->months() ." ". $dif->days();
# result 62 11 2
mia aspettative per questo è 62 11 31 o così.
Sto provando a fare una data base di nascita per l'età. Il mese e l'anno sembrano funzionare come mi aspetto, ma la giornata sembra imprevedibile. Ho letto la documentazione CPAN ma ancora non capisco.
Nota fuori tema: è meglio non utilizzare le variabili $ ae $ b, perché sono speciali in perl – red0ct