원본 본문으로 이동하기

주차를 가져오자

루아 - 아무리 구글신께 물어봐도 안나오길래... 영업일을 계산할때 사용하는 목요일을 기준으로 오늘이 몇주차인지 계산하는 함수입니다. 주차에 해당사항 없는 주는 무조건 -1이 넘어오고 type 이 'f'이면 첫쨰주 여부를 Boolean 형으로 type 이 'l'이면 마지막주 여부를 Boolean 형으로 리턴해줍니다 type 이 없을 경우 그냥 주차를 넘겨줌 중간중간에 라온을 활용한 부분이 있습니다. function getBizWeekOfMonth(type){ var d = new Date(this.getTime()); var d_first = new Date(this.getTime()); var d_last = new Date(this.getTime()); var d_temp = new Date(this.getTime()); d_first.setDate(1); d_temp.setDate(1); d_last.setDate(1); d_last.addMonth(1); d_last.addDate(-1); var left = d_last.left(d_first); var tmp = []; var day_left = 4 - d.getDay(); d.addDate(day_left); for(var i = 0; i <= left; i++) { if(d_temp.getDay() == 4){ tmp.push(d_temp.toStr("yyyy-MM-dd")); } d_temp.addDate(1); } var idx = tmp.indexOf(d.toStr("yyyy-MM-dd")) if(type != undefined){ var _type = type.toLowerCase(); if(_type == "f"){ return idx == 0; } else if(_type == "l"){ return idx == tmp.length - 1; } } return idx != -1 ? idx + 1 : -1; } /*2015-12-03 기준*/ new Date().getBizWeekOfMonth(); // 1 new Date().getBizWeekOfMonth('f'); // true new Date().getBizWeekOfMonth('l'); // false 쓸데없이 변수를 많이 만드는거 같긴 하지만... 동작은 하니 뭐 [2015-12-21 추가] 마지막날과 첫째날의 기간 차이를 구하고 반복문을 도는데... 31일이 목요일일 경우가 계산이 안되는 문제 수정 - HTML 자바스크립트