|
|
|
@ -133,273 +133,6 @@ var XitCmmnUtil = {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var DateUtil = {
|
|
|
|
|
/*============================
|
|
|
|
|
* 현재날짜로부터 월 단위로 계산된 날짜(yyyymmdd) 반환
|
|
|
|
|
* -addMonth가 0 이면 현재월
|
|
|
|
|
* -음의 숫자면 전월 (ex: -1 전월, -2 전전월, -3 ...)
|
|
|
|
|
* -양의 숫자면 차월 (ex: 1 차월, 2 차차월, 3 ...)
|
|
|
|
|
============================*/
|
|
|
|
|
getDate : function(){
|
|
|
|
|
var result = new Object();
|
|
|
|
|
switch (arguments.length) {
|
|
|
|
|
case 1:
|
|
|
|
|
result = calcDate(arguments[0]);
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
result = calcDate(arguments[0], arguments[1]);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
result = calcDate();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
//날짜 계산
|
|
|
|
|
function calcDate(addMonth, stdDay){
|
|
|
|
|
if(addMonth!=undefined)
|
|
|
|
|
addMonth = addMonth + 1;
|
|
|
|
|
addMonth = addMonth==undefined?1:addMonth;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 필수값 설정
|
|
|
|
|
* -날짜 설정
|
|
|
|
|
* -ago OR after 여부 설정
|
|
|
|
|
*/
|
|
|
|
|
var date = new Date();
|
|
|
|
|
var yyyy = date.getFullYear();
|
|
|
|
|
var mm = ( date.getMonth() + (addMonth) );
|
|
|
|
|
var dd = date.getDate();
|
|
|
|
|
if(stdDay!=undefined){
|
|
|
|
|
stdDay = stdDay.replace(/[^0-9]/gi,'');
|
|
|
|
|
yyyy = stdDay.substring(0,4);
|
|
|
|
|
mm = stdDay.substring(4,6);
|
|
|
|
|
dd = stdDay.substring(6,8);
|
|
|
|
|
|
|
|
|
|
if(addMonth==13)
|
|
|
|
|
yyyy = Number(yyyy)+1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var isAfter = false;
|
|
|
|
|
if((addMonth*1)>0)
|
|
|
|
|
isAfter = true;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 유효성 처리
|
|
|
|
|
* -해(year) 넘김 처리
|
|
|
|
|
* -말일(last day) 처리
|
|
|
|
|
*/
|
|
|
|
|
var newYear = DateUtil.getNewYear(isAfter, yyyy, mm);
|
|
|
|
|
yyyy = newYear.yyyy;
|
|
|
|
|
mm = newYear.mm;
|
|
|
|
|
var ago_last_dd = DateUtil.getEndOfMonthDay(yyyy, mm);
|
|
|
|
|
dd = dd>ago_last_dd?ago_last_dd:dd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* format 설정
|
|
|
|
|
*/
|
|
|
|
|
if( (''+dd).length == 1 )
|
|
|
|
|
dd = "0"+ dd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 결과 반환
|
|
|
|
|
*/
|
|
|
|
|
var obj = new Object();
|
|
|
|
|
obj.date = ""+yyyy+mm+dd;
|
|
|
|
|
obj.yyyy = ""+yyyy;
|
|
|
|
|
obj.mm = ""+mm;
|
|
|
|
|
obj.dd = ""+dd;
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
//+ 한달 후 말일 계산
|
|
|
|
|
getAddMonth : function(stdDay){
|
|
|
|
|
//날짜 계산
|
|
|
|
|
|
|
|
|
|
var rtnVal = calcDate(0,stdDay);
|
|
|
|
|
return rtnVal;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function calcDate(addMonth, stdDay){
|
|
|
|
|
if(addMonth!=undefined)
|
|
|
|
|
addMonth = addMonth + 1;
|
|
|
|
|
addMonth = addMonth==undefined?1:addMonth;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 필수값 설정
|
|
|
|
|
* -날짜 설정
|
|
|
|
|
* -ago OR after 여부 설정
|
|
|
|
|
*/
|
|
|
|
|
stdDay = stdDay.replace(/[^0-9]/gi,'');
|
|
|
|
|
var yyyy = stdDay.substring(0,4);
|
|
|
|
|
var mm = stdDay.substring(4,6);
|
|
|
|
|
var dd = stdDay.substring(6,8);
|
|
|
|
|
mm = Number(mm)+addMonth;
|
|
|
|
|
if(addMonth==13)
|
|
|
|
|
yyyy = Number(yyyy)+1;
|
|
|
|
|
|
|
|
|
|
var isAfter = false;
|
|
|
|
|
if((addMonth*1)>0)
|
|
|
|
|
isAfter = true;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 유효성 처리
|
|
|
|
|
* -해(year) 넘김 처리
|
|
|
|
|
* -말일(last day) 처리
|
|
|
|
|
*/
|
|
|
|
|
var newYear = DateUtil.getNewYear(isAfter, yyyy, mm);
|
|
|
|
|
yyyy = newYear.yyyy;
|
|
|
|
|
mm = newYear.mm;
|
|
|
|
|
var ago_last_dd = DateUtil.getEndOfMonthDay(yyyy, mm);
|
|
|
|
|
dd = ago_last_dd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* format 설정
|
|
|
|
|
*/
|
|
|
|
|
if( (''+dd).length == 1 )
|
|
|
|
|
dd = "0"+ dd;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 결과 반환
|
|
|
|
|
*/
|
|
|
|
|
var obj = new Object();
|
|
|
|
|
obj.date = ""+yyyy+mm+dd;
|
|
|
|
|
obj.yyyy = ""+yyyy;
|
|
|
|
|
obj.mm = ""+mm;
|
|
|
|
|
obj.dd = ""+dd;
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/*============================
|
|
|
|
|
* 현재날짜(or 기준일)로부터 일 단위로 계산된 날짜(yyyymmdd) 반환
|
|
|
|
|
* -addDay가 0 이면 금일
|
|
|
|
|
* -음의 숫자면 전일 (ex: -1 작일, -2 재작일, -3 ...)
|
|
|
|
|
* -양의 숫자면 차일 (ex: 1 명일, 2 재명일, 3 ...)
|
|
|
|
|
============================*/
|
|
|
|
|
getDateDay: function(addDay){
|
|
|
|
|
var result = new Object();
|
|
|
|
|
switch (arguments.length) {
|
|
|
|
|
case 1:
|
|
|
|
|
result = calcDate(arguments[0], DateUtil.getDate().date);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
result = calcDate(0, DateUtil.getDate().date);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//날짜 계산
|
|
|
|
|
function calcDate(addDay, stdDay){
|
|
|
|
|
addDay = addDay==undefined||addDay==null?0:addDay*1;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 필수값 설정
|
|
|
|
|
* -날짜 설정
|
|
|
|
|
* -ago OR after 여부 설정
|
|
|
|
|
*/
|
|
|
|
|
var yyyy = stdDay.substring(0,4);
|
|
|
|
|
var mm = stdDay.substring(4,6);
|
|
|
|
|
var dd = stdDay.substring(6,8);
|
|
|
|
|
var date = new Date(yyyy, (mm-1)*1, dd*1);
|
|
|
|
|
date.setDate(date.getDate()+(addDay));
|
|
|
|
|
|
|
|
|
|
yyyy = date.getFullYear();
|
|
|
|
|
mm = date.getMonth()+1;
|
|
|
|
|
dd = date.getDate();
|
|
|
|
|
|
|
|
|
|
if( (''+mm).length == 1 )
|
|
|
|
|
mm = "0"+ mm;
|
|
|
|
|
if( (''+dd).length == 1 )
|
|
|
|
|
dd = "0"+ dd;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 결과 반환
|
|
|
|
|
*/
|
|
|
|
|
var obj = new Object();
|
|
|
|
|
obj.date = ""+yyyy+"."+mm+"."+dd;
|
|
|
|
|
obj.yyyy = yyyy;
|
|
|
|
|
obj.mm = mm;
|
|
|
|
|
obj.dd = dd;
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
/*============================
|
|
|
|
|
* 달의 마지막 날짜(dd) 반환
|
|
|
|
|
============================*/
|
|
|
|
|
getEndOfMonthDay : function(yy, mm){
|
|
|
|
|
var max_days=0;
|
|
|
|
|
if(mm == 1 || mm == '01') {
|
|
|
|
|
max_days = 31 ;
|
|
|
|
|
} else if(mm == 2 || mm == '02') {
|
|
|
|
|
if ((( yy % 4 == 0) && (yy % 100 != 0)) || (yy % 400 == 0))
|
|
|
|
|
max_days = 29;
|
|
|
|
|
else
|
|
|
|
|
max_days = 28;
|
|
|
|
|
}
|
|
|
|
|
else if (mm == 3 || mm == '03') max_days = 31;
|
|
|
|
|
else if (mm == 4 || mm == '04') max_days = 30;
|
|
|
|
|
else if (mm == 5 || mm == '05') max_days = 31;
|
|
|
|
|
else if (mm == 6 || mm == '06') max_days = 30;
|
|
|
|
|
else if (mm == 7 || mm == '07') max_days = 31;
|
|
|
|
|
else if (mm == 8 || mm == '08') max_days = 31;
|
|
|
|
|
else if (mm == 9 || mm == '09') max_days = 30;
|
|
|
|
|
else if (mm == 10 || mm == '10') max_days = 31;
|
|
|
|
|
else if (mm == 11 || mm == '11') max_days = 30;
|
|
|
|
|
else if (mm == 12 || mm == '12') max_days = 31;
|
|
|
|
|
else return '';
|
|
|
|
|
return max_days;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/*============================
|
|
|
|
|
* 해(year) 넘김 처리
|
|
|
|
|
============================*/
|
|
|
|
|
getNewYear : function(isAfter, yyyy, mm){
|
|
|
|
|
/*
|
|
|
|
|
* 해(year) 넘김 처리
|
|
|
|
|
*/
|
|
|
|
|
if(isAfter){
|
|
|
|
|
if(mm>12){
|
|
|
|
|
var formula = Math.floor(mm/12);
|
|
|
|
|
yyyy = Number(yyyy)+(formula);
|
|
|
|
|
mm = mm - ((formula)*12);
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
if(mm<1){
|
|
|
|
|
var formula = Math.floor((mm*(-1))/12)+1;
|
|
|
|
|
yyyy = yyyy-(formula);
|
|
|
|
|
mm = mm + ((formula)*12);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 포맷 설정
|
|
|
|
|
* -월(month) 두자리 설정
|
|
|
|
|
*/
|
|
|
|
|
if( (''+mm).length == 1 )
|
|
|
|
|
mm = "0"+ mm;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* 결과 반환
|
|
|
|
|
*/
|
|
|
|
|
var obj = new Object();
|
|
|
|
|
obj.yyyy = ''+yyyy;
|
|
|
|
|
obj.mm = ''+mm;
|
|
|
|
|
return obj;
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param {Object} formEliment form eliment : document.
|
|
|
|
|