[ create a new paste ] login | about

Link: http://codepad.org/zR8xOy33    [ raw code | output | fork ]

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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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>


Create a new paste based on this one


Comments: