前日の年月日を得る
当日の年月日は、localtimeとtimeを使えば、すぐに解決。
my @arr = localtime(time); my $y = $arr[5] + 1900; my $m = $arr[4] + 1; my $d = $arr[3]; printf "%d %d %d\n", $y, $m, $d;
前日というのは実にやっかいで、前述の$dから引き算をすると、2013年4月0日とかになってしまう。
そこでいろいろ考えてみたが以下略
timeの返り値から1日分の秒数を引けば解決。
my @arr = localtime(time-24*60*60); my $y = $arr[5] + 1900; my $m = $arr[4] + 1; my $d = $arr[3]; printf "%d %d %d\n", $y, $m, $d;