Perlで日付演算を行う推奨方法は何ですか?
たとえば、今日から 3 日前の日付を知りたいとします (ここでtoday
=2010-10-17
とtoday - 3 days
= 2010-10-13
)。Perl でそれを行うにはどうすればよいでしょうか。
Perlで日付演算を行う推奨方法は何ですか?
たとえば、今日から 3 日前の日付を知りたいとします (ここでtoday
=2010-10-17
とtoday - 3 days
= 2010-10-13
)。Perl でそれを行うにはどうすればよいでしょうか。
DateTime と DateTime::Duration を使用できます
http://search.cpan.org/dist/DateTime/lib/DateTime/Duration.pm
または、UNIX タイムスタンプを操作します。
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);
CPAN の DateTime (またはこちら)を参照してください。
非常に多くの異なる日付と時刻操作モジュールがあります。
これらには以下が含まれます:
これらはすべてよく考えられています。この他にも多数あります。多くは、実行したい演算の種類に依存します。DateTime はおそらく最も厳密ですが、Date::Calc と Date::Manip の方が必要な作業を処理しやすい場合があります。
これは、私が遭遇した最も多くの機能を備えたモジュールです: Date::Manip