크롬80버전 결제 이슈, 영카트5 주요패치 확인!

혹시 이런 함수 또는 소스가 있을까요>

그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
혹시 이런 함수 또는 소스가 있을까요>

QA

사수가 없어도 할 수 있다! 초보자를 위한 그누보드 FAQ

혹시 이런 함수 또는 소스가 있을까요>

본문

이번달 즉 2020-05이라면 5월의 마지막 일요일이 몇일인지를 구해야 하는데요..

주 계산은 쉬운게 아니네요..ㅠㅠㅠ

 

혹시 php에 이런 함수가 있는지요?

또는 이런 소스를 보신적 있으시면 힌트좀 주세요..

 

아래 소스는 구글링에서 얻은 어느 전문가의 소스인데요..

그달에 몇주가 있는지만 안다면 아주 요긴하게 사용할 수 있을텐데...

그달에 몇일인지를 찾는 함수는 잇어도 몇주가 되는지의 함수는 없드라구요..ㅠㅠㅠ

 


///////////////////////////////////////////////////////////////
// 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

채택됨

백수1995님의 답변

한달이 몇주를 가지고 있느냐는 일요일 기준인지, 월요일 기준인지 에 따라 달라지기 때문에 그런식으로 만들지 않는겁니다. ㅎㅎ

 

2020년 6월의 마지막 일요일은 

getNthWeekday(2020, 6, 5, 0);

getNthWeekday(2020, 6, 4, 0);

getNthWeekday(2020, 6, 3, 0);

순으로 for 문 돌면서 false 가 아닌 값이 나오면 그걸로 구하면 되겠네요

 

주소복사
채택됨
답변의 댓글

devdev님의 답변

월의 마지막 날짜 구하고(그런 함수가 있을 겁니다.)

마직막 날짜부터 하나씩 날짜 줄이며 loop 돌려서

일요일인지 체크하면 되겠습니다.

주소복사
답변의 댓글

마르스컴퍼니님의 답변

* 현재월의 마지막 일요일 날짜
echo date("Y-m-d", strtotime("last Sunday of this month"));

 

* 2019년 6월의 마지막 일요일 날짜
echo date("Y-m-d", strtotime("last Sunday of June 2019"));

주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 41,867
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06212) 서울시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT