Perlで日付計算する
Calendarモジュールを使うと、月またぎの日にちの引き算や、足し算で日にちを求めることができます。商品の発売日を取得して、今日から30以内に発売されていれば新商品と判定、なんて処理も簡単です。
#!/usr/bin/perl use strict; use warnings; use feature qw/say switch/; use utf8; use open IO => qw/:utf8 :std/; use Calendar; my $day1 = Calendar->today; my @list = split "/", "2012/05/04"; my $day2 = Calendar->new_from_Gregorian($list[1], $list[2], $list[0]); say $day1->convert_to_Gregorian(); say $day2; say $day2 - $day1; say "新しい商品です!" if 30 > $day2 - $day1;
結果はこんな感じです。
04/12/2012 05/04/2012 22 新しい商品です!
PODには「convert_to_なんちゃらでいろんなメソッドが使えるぜ」みたいなことしか書いてないので、普通の日付にどうやってコンバートするのかよくわかりませんでした。
太陽暦のことを「Gregorian」というのですね。あほです。知りませんでした。