PHP,
pasted
on Oct 8:
|
<?PHP
function ddayTime($startday,$dday,$except_wdays){
$stime = strtotime($startday);
$kwday = array('일','월','화','수','목','금','토');
$wdays_code = array_keys(array_intersect($kwday,explode(',',$except_wdays)));
$wdays_cnt = sizeof($wdays_code);
$week_date_cnt = (7-$wdays_cnt);
$week_cnt = floor($dday/$week_date_cnt);
$week_left_date_cnt = $dday%$week_date_cnt;
$last_wdays_dcnt=0;
for($i=0;$i<=$week_left_date_cnt;$i++) {
if(in_array((date('w',$stime)+$i)%7,$wdays_code)) {
$last_wdays_dcnt++;
$week_left_date_cnt++;
}
}
$wdays_dcnt = ($week_cnt*$wdays_cnt);
$tar_date = strtotime($startday.' + '.($dday+$wdays_dcnt+$last_wdays_dcnt).' days');
return $tar_date;
}
$startdate = '2009-10-01';
$except_wdays = '월,수,금';
for($z=1;$z<=15;$z++) {
echo $startdate.'일부터 ('.$except_wdays.')요일을 제외한 '.$z.'일후=>'.my_date(ddayTime($startdate,$z,$except_wdays))."<br>\r\n";
}
function my_date($timestemp) {
$kwday = array('일','월','화','수','목','금','토');
return date('Y-m-d (',$timestemp).$kwday[date('w',$timestemp)].")";
}
?>
|
Output:
|
2009-10-01일부터 (월,수,금)요일을 제외한 1일후=>2009-10-03 (토)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 2일후=>2009-10-04 (일)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 3일후=>2009-10-06 (화)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 4일후=>2009-10-08 (목)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 5일후=>2009-10-10 (토)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 6일후=>2009-10-11 (일)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 7일후=>2009-10-13 (화)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 8일후=>2009-10-15 (목)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 9일후=>2009-10-17 (토)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 10일후=>2009-10-18 (일)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 11일후=>2009-10-20 (화)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 12일후=>2009-10-22 (목)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 13일후=>2009-10-24 (토)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 14일후=>2009-10-25 (일)<br>
2009-10-01일부터 (월,수,금)요일을 제외한 15일후=>2009-10-27 (화)<br>
|
|