さわだのノート

書籍のお仕事に役立つかもしれない思いつきを記録しています。

RSS: 記事の更新情報 Rss Feed

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」というのですね。あほです。知りませんでした。