perlで日付算出にはDate::Calc 日数計算や前月1日〜月末など

perlで日付算出にはDate::Calc 日数計算や前月1日〜月末など

Date::Calc - search.cpan.org

基本

use Date::Calc qw(:all);

# 今日
my ($yyyy,$mm,$dd) = Today();
print "$yyyy/$mm/$dd"; 

# 実行結果
2011/1/21

昨日の日付(日付計算)

use Date::Calc;

my ($yyyy,$mm,$dd) = Date::Calc::Today();
@y = Date::Calc::Add_Delta_Days($yyyy, $mm, $dd, -1);
my $yesterday= join('/',@y);

print "昨日=$yesterday\n";

# 実行結果
昨日=2011/1/20

Date::Calc::Add_Delta_Days($yyyy, $mm, $dd, -1);の-1を-7にすれば7日前、5にすれば5日後となる。

前月1日と月末を算出

use Date::Calc;

@y = Date::Calc::Add_Delta_YMD($yyyy, $mm, 1, 0 ,-1, 0); #前月1日
$start = join('/',@y);
@y = Date::Calc::Add_Delta_YMD($yyyy, $mm, 1, 0, 0, -1); #前月末日
$end = join('/',@y);

print "前月1日=$start\n";
print "前月末日=$end\n";

# 実行結果
前月1日=2010/12/1
前月末日=2010/12/31

Date::Calc - 日付の計算にもサンプルが。
日付の不正を確認、指定した月の日数を取得、タイムスタンプを取得など。