http://cocohome.hp.infoseek.co.jp/cocohome/l_nisukeisan.html
ココとPerlで遊びませんか(経過日数の計算)
上のリンクはあまり参考になりません。
ちょっと書いてみました。もっとスマートな方法があると思いますが…。
1行目の$timeserialに負の数(つまり1970/1/1 0:00:00から引く秒数分のシリアル値)を入れると、経過日数とその日付が出力されます。
実行にはDate::Calcモジュールが必要です。
また、あくまでグレゴリオ暦での計算なのでご注意を。
------------------
$timeserial = -86400;
($sec, $min, $hour, $mday, $mon, $year) = gmtime(0);
$year += 1900;
$mon += 1;
$kdays = int($timeserial / 60 / 60 / 24);
print ”$kdays日が経過しています¥n”;
use Date::Calc qw(Add_Delta_Days);
($y,$m,$d) = Add_Delta_Days($year,$mon,$mday,$kdays);
print ”$y/$m/$d¥n”;
-------------------------
回答ありがとうございます。
ただ、Date::Calcは標準モジュールではないので、標準モジュールだけで同じことをしたいと思っています。