Qual è il modo consigliato di fare data aritmetica in Perl?
-
08-10-2019 - |
Domanda
Qual è il modo consigliato di fare data aritmetica in Perl?
Dire per esempio che io voglio sapere la data di tre giorni fa da oggi (dove today
= 2010-10-17
e today - 3 days
= 2010-10-13
). Come hai fatto in Perl?
Soluzione
È possibile utilizzare DateTime e DateTime :: Durata ??p>
http://search.cpan.org/dist/DateTime/ lib / DateTime / Duration.pm
o lavorare con unix timestamp:
my $now = time();
my $threeDaysAgo = $now - 3 * 86400;
my ($day, $mon, $year) = (localtime($threeDaysAgo))[3, 4, 5];
printf("Three days ago was %04d-%02d-%02d", $year+1900, $mon+1, $day);
Altri suggerimenti
DateTime su CPAN (o qui ).
Ci sono molti, molti moduli di manipolazione di data e ora differenti.
Questi includono:
- Date :: Calc - e le Add_Delta_Days funzionare
- Data :: Manip - e la funzione datecalc
- DateTime
Tutti questi sono ben pensato. Ci sono molti altri in aggiunta. Molto dipende dal tipo di aritmetica che si vuole fare. DateTime è forse il più rigoroso, ma Date :: Calc e Date :: Manip può essere più facile da gestire per il lavoro è necessario.
Questo è di gran lunga il modulo con la massima funzionalità che ho incontrato: Date :: Manip