iRSSの日記

はてなダイアリーiRSSの日記の続き

DateTimeモジュールのdelta_daysメソッドは差分をとれるが、常に正の値を返す

差分日数が知りたい
上記コードにて $dur 取得後は、 10ヶ月と4日 という差分結果を、308日 というような日数に変換することはできません。DateTime::Duration オブジェクトは変換元の日時情報を覚えていない為です (詳しくは perldoc DateTime > METHODS > in_units(..) の項目 を参照のこと)。なので、差分日数が欲しい場合は、普通に引き算する代わりに、以下のようなメソッドを使います:

my $dur = $d1->delta_days($d2);
print $dur->in_units('days'); # 308

を使ってみたのですが。

このdelta_daysは、差分として、常に正の値を返します。
マイナスにはならないので、注意。