Was ist der empfohlene Weg, Datum arithmetics in Perl zu tun?
-
08-10-2019 - |
Frage
Was ist der empfohlene Weg, Datum arithmetics in Perl zu tun?
Nehmen wir zum Beispiel, dass ich will von heute vor das Datum drei Tage wissen (wo today
= 2010-10-17
und today - 3 days
= 2010-10-13
). Wie würden Sie das tun in Perl?
Lösung
Sie können mit Datetime und Datetime :: Dauer
http://search.cpan.org/dist/DateTime/ lib / Datetime / Duration.pm
oder die Arbeit mit Unix-Zeitstempel:
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);
Andere Tipps
Siehe Datetime auf CPAN (oder hier ).
Es gibt viele, viele verschiedene Datums- und Zeitmanipulationsmodule.
Dazu gehören:
- Date :: Calc - und die Add_Delta_Days funktionieren
- Datum :: Manip - und die DateCalc Funktion
- Datetime
Alle diese sind gut durchdacht. Es gibt viele andere dazu. Viel hängt von der Art der Arithmetik Sie tun mögen. Datetime ist vielleicht die strenge, aber Date :: Calc und Datum :: Manip einfacher sein kann, für die Arbeit, die Sie benötigen, zu behandeln.
Dies ist bei weitem das Modul mit den meisten Funktionen, die ich bin gekommen, über: Datum :: Manip