指定期日から指定営業日の年、月、日を返すライブラリ。
今は使っていないので一部改変して公開します。GPLライセンス。
他に必要なもの:
・呼び出し元CGI - サンプルはこちら
・休日判定ライブラリ - futomiさんのライブラリ
スポンサードリンク
businessday.pl
############################################################################## # 指定期日から指定営業日の年、月、日を返す ############################################################################## # # [使い方] # my($Y, $M, $D) = &AfterBusinessDay(today, $AddBusinessDay); # today = 2005-04-28 # AddBusinessDay = 3 # Ex.Ans. -> 2005.05.06 # # [宣 言] # use Time::Local; # use Date::Simple; # require './businessday.pl'; # # [戻り値] # 指定期日後の「年」「月」「日」 # # [著作者] # CASEY 2005-2008 # # [履 歴] # Ver.0.00 2005.04.04 プロトタイプ # Ver.0.01 2005.04.05 バグフィックス # Ver.0.02 2005.04.06 perl library # Ver.0.03 2008.02.05 公開 sub AfterBusinessDay{ my($day, $AddBusinessDay) = @_; my $tF = date($day); # 検索開始 my $cnt = 0; # 営業日カウント my $i = 0; # ループカウント my $flg = 0; # 休日フラグ my $check; for(;;){ # 初期化 $flg = 0; # 対象日の設定=今日からカウント日後 $check = $tF + $i; # 日付フォーマットの変更 my($cY, $cM, $cD) = split(/-/, $check); # 休日かどうか調べる(土曜含む) # 追加すべきは社で定める休日のみ $flg = &CheckHoliday($cY, $cM, $cD); # 休日でなければ営業日カウント $cnt++ unless $flg; # カウント=日後営業日なら終了 return ($cY, $cM, $cD) if($AddBusinessDay == $cnt) # 翌日を計算する準備 $i++; # リミッタ return (undef, undef, undef) if(100 <= $i) } } 1;
コメント