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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>세 번째 월요일을 구하고 싶을 때</title> <link href="style.css" rel="stylesheet"> </head> <body> <div> <?php date_default_timezone_set('Asia/Seoul'); echo "<p>2016년 7월의 세 번째 월요일 구하기</p>"; $year = 2016; $month = 7; $week = 3; $weekday = 1; // 월요일 $ret = getNthWeekday($year, $month, $week, $weekday); if( $ret !== false ) { echo $ret . "일"; } else { echo "해당하는 날짜는 존재하지 않음"; } echo "</p>"; // 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; } ?> </div> </body> </html> |
2018년 5월 14일 월요일
[PHP예제] 072 세 번째 월요일을 구하고 싶을 때
피드 구독하기:
댓글 (Atom)
지금 꼭 필요하던 거였는데 만들기는 귀찮고 해서 혹시나 해서 검색 해봤는데 딱 있네요. 감사합니다.
답글삭제