とても面倒な日付・時刻計算をPerlで行うためのCPANライブラリ。
それがDate::Calc。
調べたら、なんだか直訳調っぽくて「何言ってんだか?」みたいなとこしかなかったので、
今回使った部分だけメモ。
use strict; use Date::Calc qw(:all); #UNIXタイムスタンプの取得 my $time = Mktime( 2009, 6, 5, 12, 42, 44); print $time . "\n"; #今の時間を取得 my ($year,$month,$day, $hour,$min,$sec) = Today_and_Now(); print "$year年$month月$day日 $hour時$min分$sec秒\n"; #日付のみ取得 ($year,$month,$day) = Today(); #時刻のみ取得 ($hour,$min,$sec) = Now(); #2008年6月1の30日前の日付を計算 ($year,$month,$day, $hour,$min,$sec) = Add_Delta_DHMS( 2008, 6, 1, 0, 0, 0, -30, 0, 0, 0); print "$year年$month月$day日 $hour時$min分$sec秒\n"; #引数 #[0]:基準の年 [1]:基準の月 [2]:基準の日 #[3]:基準の時 [4]:基準の分 [5]:基準の秒 #[6]:何日後(前はマイナス指定)を計算するか #[7]:何時間後(前はマイナス指定)を計算するか #[8]:何分後(前はマイナス指定)を計算するか #[9]:何秒後(前はマイナス指定)を計算するか #今を基準にして10日後の3時間15分30秒前を計算 ($year,$month,$day, $hour,$min,$sec) = Add_Delta_DHMS( Today_and_Now() , 10, -3, -15, -30); print "$year年$month月$day日 $hour時$min分$sec秒\n"; #第6引数まではToday_and_Now()を使える。#日付のみの計算 ($year,$month,$day) = Add_Delta_YM($year,$month,$day, $Dy,$Dm);#時刻のみの計算 ($year,$month,$day) = Add_Delta_YMD($year,$month,$day, $Dy,$Dm,$Dd);#日付のみの計算 ($year,$month,$day) = Add_Delta_YMD($year,$month,$day, $Dy,$Dm,$Dd); #時刻のみの計算 ( #日付として正しいか?(リターンは1または0) #↓不正 print check_date( 2009, 13, 1 ) . "\n"; #↓正常 print check_date( 2009, 12, 31 ) . "\n"; #時刻として正しいか?(リターンは1または0) #↓不正 print check_time( 26, 12, 62 ) . "\n"; #↓正常 print check_time( 23, 59, 59 ) . "\n";
よく使いそうなところはこんなもん?
【一応メモ】
競合する関数名の関数を自分で作っているときは、競合してしまうので、
use Date::Calc qw(:all);
を
use Date::Calc;
に変更して、関数にDate::Calc::をつけて関数実行。
【すみません】
誤りがありました。日付の増減計算はありましたが、時刻のみの増減計算はありませんでした。修正しました。
Comment feed