[Javascript] 특정 월의 일자들을 요일기준으로 배열 만들기.
특정 달에 특정 일자를 알고 싶을때 사용할 수 있는 자바스크립트 함수이다. 가령 2013년 6월의 마지막주 금요일이 몇일 인지 알고 싶을때, 사용한다.
// ( 참고 : 0:일 , 1:월, 2:화, 3:수 , 4:목, 5:금 , 6:토 ) function getMonthToArrayDays(tmonth) {
var tlastday = new Date((new Date(tmonth.getFullYear(), tmonth.getMonth() + 1, 1)) - 1);
var firstDay = tmonth.getDay();
var arrdaylist = new Array(7); arrdaylist[0] = new Array(); // 일 arrdaylist[1] = new Array(); // 월 arrdaylist[2] = new Array(); // 화 arrdaylist[3] = new Array(); // 수 arrdaylist[4] = new Array(); // 목 arrdaylist[5] = new Array(); // 금 arrdaylist[6] = new Array(); // 토
var tempday = firstDay;
for (var i = 1 ; i <= tlastday.getDate() ; i++) { var ttempval = tempday % 7; arrdaylist[ttempval].push(i); tempday++; } return arrdaylist; } |
[소스 1 - 해당 달의 일자를 배열형식으로 반환하는 함수]
위 [소스1]은 해당 달의 요일별로 일자들을 배열로 반환하는 함수이다. 즉, 마지막주 금요일이라 하면 배열의 5번째 열에서 마지막 아이템을 찾으면 마지막 날짜가 나올 것이다. 아래는 사용 예제를 나타낸 것이다.
var tmonth = new Date("2013-06-01");
var arrlist = getMonthToArrayDays(tmonth);
// 마지막주 금요일은 몇일인지 확인. var lastFriday = arrlist[5][arrlist[5].length - 1]; |
[소스 2 - 함수 호출 내용]
위 소스를 실행시켜보면 28이라는 숫자가 나올 것이다.
2013년 6월의 마지막주 금요일은 28일이다.