PHPで、本日からn営業日後の入力可能日を返す

PHPで、本日からn営業日後の入力可能日を返す関数を作ったので、貼っておく。
$holidays = array( 
 '2013/01/01',
 '2013/01/14',
 '2013/02/11',
 '2013/03/20',
 '2013/04/29',
 '2013/05/03',
 '2013/05/04',
 '2013/05/05',
 '2013/07/15',
 '2013/09/16',
 '2013/09/23',
 '2013/10/14',
 '2013/11/03',
 '2013/11/23',
 '2013/12/23',
 '2014/01/01',
 '2014/01/13',
 '2014/02/11',
 '2014/03/21',
 '2014/04/29',
 '2014/05/03',
 '2014/05/04',
 '2014/05/05',
 '2014/07/21',
 '2014/09/15',
 '2014/09/23',
 '2014/10/13',
 '2014/11/03',
 '2014/11/23',
 '2014/12/23',
 '2015/01/01'
 ); //祝日ほか
 function get_inputOKday() {
 $ret = 1;
 $n = 3; //何営業日後
 $offdays = array('Sat','Sun'); //休日
 $todaywork = date("Y/m/d"); //今日
 // $todaywork = date("2013/06/20"); //指定日以降にする場合
 //n日後を足し込んで行くが休日から外れるまで +1日秒してゆく
 $dateunix = strtotime($todaywork);
 $count = 0;
 $chkflag=0;
 $dateunix += (60 * 60 * 24); //判断は一日先から
  while (1){
   if(( in_array( date("D",$dateunix), $offdays) || in_array( date("Y/m/d",$dateunix),$holidays)) && ($chkflag==0)) {
    $dateunix += (60 * 60 * 24); //一日秒
  } else {
    $chkflag=1;
    $count++;
    if ($count >= $n) {
     break;
    }
   $dateunix += (60 * 60 * 24); //一日秒
   }  
  }
  return date("Y/m/d",$dateunix);
 }
無限ループなのはどうかと思うが・・・。

Ad


2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

最近のトラックバック

無料ブログはココログ