두 날짜의 "달" 단위 체크
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 |