이번달 즉 2020-05이라면 5월의 마지막 일요일이 몇일인지를 구해야 하는데요..
주 계산은 쉬운게 아니네요..ㅠㅠㅠ
혹시 php에 이런 함수가 있는지요?
또는 이런 소스를 보신적 있으시면 힌트좀 주세요..
아래 소스는 구글링에서 얻은 어느 전문가의 소스인데요..
그달에 몇주가 있는지만 안다면 아주 요긴하게 사용할 수 있을텐데...
그달에 몇일인지를 찾는 함수는 잇어도 몇주가 되는지의 함수는 없드라구요..ㅠㅠㅠ
Copy
///////////////////////////////////////////////////////////////
// getNthWeekday() 함수
// 지정 날짜의 o번째 o요일의 날짜를 반환함
// 해당하는 날짜가 없는 경우에는 false를 반환함
// 제1인수에는 연도
// 제2인수에는 월
// 제3인수에는 주 번호(제o주째) ???? ㅠㅠㅠ
// 제4인수에는 요일을 0(일요일)에서 6(토요일)의 숫자로 지정
///////////////////////////////////////////////////////////////
function getNthWeekday($year, $month, $week, $weekday) {
// 주의 지정이 옳은지 확인함
if( $week < 1 || $week > 5 ) { return false; }
// 요일의 지정이 옳은지 확인함
if( $weekday < 0 || $weekday > 6 ) { return false; }
// 지정한 년 월의 첫째 날(1일)의 요일을 구함
$weekdayOfFirst = (int) date('w', mktime(0, 0, 0, $month, 1, $year));
// 첫 째 날의 월요일을 바탕으로 첫 번째 o요일의 날짜를 구함
$firstDay = $weekday - $weekdayOfFirst + 1;
if( $firstDay <= 0 ) { $firstDay += 7; }
// 첫 번째 o요일에 7의 배수를 가산해 제o주의 o요일의 날짜를 구함
$resultDay = $firstDay + 7 * ($week - 1);
// 마지막으로 처리 결과가 올바른 날짜인지 확인함.
if( ! checkdate($month, $resultDay, $year) ) { return false; }
return $resultDay;
}
답변 4개
채택된 답변
+20 포인트
답변을 작성하려면 로그인이 필요합니다.