두 날짜의 "달" 단위 체크

getIntervalMonth(시작날짜(문자형), inteval, (0 : 이전, 1 : 이후))


if(getIntervalMonth(f.p_startdt.value, 1, "1") < f.p_enddt.value){

   alert("학습시작일 범위는 1개월을 넘을 수 없습니다.");

   return;

}




 /**

     * 기준일부터 특정일자 이전(0), 이후(1)의 개월수 만큼 차이나는 날짜를 리턴한다.(YYYYMMDD)

     */

    function getIntervalMonth(kijunDate, term, isPrevNext)

    {

        var kijunDate   = deleteDateFormatStr(kijunDate);

        var year        = kijunDate.substring(0,4); /// 년

        var month       = kijunDate.substring(4,6); /// 월

        var date        = kijunDate.substring(6,8); /// 일

        var addMonth;

        var addYear;

        var tempYear;

        var tempMonth;

        var rtnDate;


        if(isPrevNext == "0") /// 이전

        {

            addMonth    = eval(month) - eval(term);

            addYear     = Math.floor(eval(addMonth/12)); /// 빼줄 년도 계산

            tempYear    = eval(addYear) + eval(addMonth%12);

            if(tempYear > 0)

            {

                tempMonth   = eval(tempYear%13);

            }

            else

            {

                tempMonth   = eval(12 + addMonth%12);

                if(tempYear == 0)

                    addYear     = addYear-1;

            }

        }

        else /// 이후

        {

            addMonth    = eval(month) + eval(term);

            addYear     = Math.floor(eval(addMonth/13)); /// 더해줄 년도 계산

            tempYear    = eval(addYear) + eval(addMonth%13);


            if(tempYear < 13)

            {

                tempMonth   = eval(tempYear%13);

            }

            else

            {

                tempMonth   = eval(tempYear%13 +1);

                addYear     = addYear+1;

            }

        }


        tempMonth   = tempMonth + ""; /// 길이를 알아보기위해 string으로 바꿔줌.

        if(tempMonth.length == 1)

        {

            tempMonth = "0" + tempMonth;

        }

        /// 해당월에 해당일이 존재하는지 체크하고 존재하지 않는다면 마지막 일을 가져온다.

        if( !isValidDay(eval(year) + eval(addYear), tempMonth, date))

            date = getLastDay(eval(year) + eval(addYear), tempMonth);


        rtnDate = eval(year) + eval(addYear) +""+ tempMonth +""+ date;

        //alert(">날짜 ::"+ rtnDate);


        return rtnDate;

    }


/**

     * 날짜에서 "-"를 없앤다.

     *

     * @param   str

     */

    function deleteDateFormatStr(str) {

        var temp = '';

        

        for (var i = 0; i < str.length; i++) {

            if (str.charAt(i) == '-') {

                continue;

            } else {

                temp += str.charAt(i);

            }

        }

        

        return  temp;

    }

'JavaScript' 카테고리의 다른 글

[JavaScript] 특수키 제어  (0) 2013.08.09
[JavaScript] Event Handler 정리  (0) 2013.07.18
[JavaScript] URI 인코딩  (0) 2013.02.19
[JavaScript] 다음달 1일과 마지막일 가져오기  (0) 2013.02.18
[JavaScript] Debug JavaScript  (0) 2013.02.07

+ Recent posts