[ Javascirpt ] - 월요일 기준으로 주차 구하기 [ 주차 , JAVASCRIPT , javascript , 주차구하기 ]
//월요일을 중심으로한 주차 구하기
//차일 변수
var minusDay = 0;
//주차를 계산하고픈 일
var wkDtStr = "20130901";
//계산하고픈달 시작일 1일
var stDtStr = wkDtStr.substring(0,6) + "01";
var stDtCal = new Date( stDtStr.substring(0,4) , stDtStr.substring(4,6) , stDtStr.substring(6,8) );
//요일 구하기
var weekCal = new Date( wkDtStr.substring(0,4) , ( wkDtStr.substring(4,6) - 1 ) , wkDtStr.substring(6,8) );
//주차를 계산하고픈 일 달력 생성
var wkDtCal = new Date( wkDtStr.substring(0,4) , wkDtStr.substring(4,6) , wkDtStr.substring(6,8) );
//매달 시작일에 따른 빼줘야 하는 값
var week = new Array( 1, 0, 5, 4, 3, 2, 1 );
minusDay = wkDtCal.getDate() - stDtCal.getDate() - week[ weekCal.getDay() ] ;
//만약 2일부터 1주차인데 1일을 입력했을경우 혹은 년도가 바뀔경우
if( ( minusDay - week[ weekCal.getDay() ] ) < 0 ){
wkDtCal.setDate( stDtCal.getDate() - 1 );
stDtCal.setDate( stDtCal.getDate() - wkDtCal.getDate() );
minusDay = wkDtCal.getDate() - stDtCal.getDate();
// alert( "변경된 시작일 : " + stDtCal.getYear() + stDtCal.getMonth() + stDtCal.getDate() + "" );
// alert( "변경된 마지막일 : " + wkDtCal.getYear() + wkDtCal.getMonth() + wkDtCal.getDate() + "" );
// alert( "두 날짜 차일 : " + wkDtCal.getDate() - stDtCal.getDate() );
}
var weekNm = minusDay / 7 + 1;
//연산
alert( wkDtCal.getYear() + "년" + wkDtCal.getMonth() + "월" + parseInt(weekNm) + " 주차 " );
날짜를 집어넣으면 월요일 기준으로 주차를 계산하는 함수
쉽게 말해서 2013 년 10월 7일은 2013 년 10 월 1주차 로 계산됨 ( 2주차가 아님 )
무조건 월요일이 지나가야 1주차가 된다.
별거아닌거 짜면서 골 깨지는줄 알았음.. ㅋㅋ