String.prototype.toDate = toDate; Date.prototype.getDateFormat = getDateFormat; Date.prototype.getAddDate = getAddDate; Date.prototype.getDayOfWeek = getDayOfWeek; Date.prototype.getMonthDay = getMonthDay; Date.prototype.isLeapYear = isLeapYear; function isNull(str){ return ((str == null || str == "" || str == "undefined") ? true:false); } function toDate(pPattern) { var index = -1; var year; var month; var day; var hour = 0; var min = 0; var sec = 0; var ms = 0; if(isNull(pPattern)) pPattern = "YYYYMMDD"; if ((index = pPattern.indexOf("YYYY")) == -1 ) { index = pPattern.indexOf("YY"); year = "20" + this.substr(index, 2); } else { year = this.substr(index, 4); } index = pPattern.indexOf("MM"); month = this.substr(index, 2); index = pPattern.indexOf("DD"); day = this.substr(index, 2); if ((index = pPattern.indexOf("hh")) != -1 ) { hour = this.substr(index, 2); } if ((index = pPattern.indexOf("mm")) != -1 ) { min = this.substr(index, 2); } if ((index = pPattern.indexOf("ss")) != -1 ) { sec = this.substr(index, 2); } if ((index = pPattern.indexOf("SS")) != -1 ) { ms = this.substr(index, 2); } return new Date(year, month - 1, day, hour, min, sec, ms); } function getDateFormat(pPattern) { var GLB_MONTH_IN_YEAR = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); var GLB_DAY_IN_WEEK = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday"); var year = this.getFullYear(); var month = this.getMonth() + 1; var day = this.getDate(); var dayInWeek = this.getDay(); var hour24 = this.getHours(); var ampm = (hour24 < 12) ? 0 : 1; var hour12 = (hour24 > 12) ? (hour24 - 12) : hour24; var min = this.getMinutes(); var sec = this.getSeconds(); var YYYY = "" + year; var YY = YYYY.substr(2); var MM = (("" + month).length == 1) ? "0" + month : "" + month; var MON = GLB_MONTH_IN_YEAR[month-1]; var DD = (("" + day).length == 1) ? "0" + day : "" + day; var DAY = GLB_DAY_IN_WEEK[dayInWeek]; var HH = (("" + hour12).length == 1) ? "0" + hour12 : "" + hour12; var hh = (("" + hour24).length == 1) ? "0" + hour24 : "" + hour24; var mm = (("" + min).length == 1) ? "0" + min : "" + min; var ss = (("" + sec).length == 1) ? "0" + sec : "" + sec; var SS = "" + this.getMilliseconds(); var a = (a == 0) ? "AM" : "PM"; var dateStr; var index = -1; if (typeof(pPattern) == "undefined") { dateStr = "YYYYMMDD"; } else { dateStr = pPattern; } dateStr = dateStr.replace(/a/g, a); dateStr = dateStr.replace(/YYYY/g, YYYY); dateStr = dateStr.replace(/YY/g, YY); dateStr = dateStr.replace(/MM/g, MM); dateStr = dateStr.replace(/MON/g, MON); dateStr = dateStr.replace(/DD/g, DD); dateStr = dateStr.replace(/DAY/g, DAY); dateStr = dateStr.replace(/hh/g, hh); dateStr = dateStr.replace(/HH/g, HH); dateStr = dateStr.replace(/mm/g, mm); dateStr = dateStr.replace(/ss/g, ss); dateStr = dateStr.replace(/SS/g, SS); return dateStr; } function getAddDate(pNum, pKind) { var rtnDate = this; if(isNull(pKind)) pKind = "D"; switch(pKind){ case "Y" : rtnDate.setFullYear(this.getFullYear() + pNum);break; case "M" : rtnDate.setMonth(this.getMonth() + pNum);break; case "D" : rtnDate.setDate(this.getDate() + pNum);break; case "h" : rtnDate.setHours(this.getHours() + pNum);break; case "m" : rtnDate.setMinutes(this.getMinutes() + pNum);break; case "s" : rtnDate.setSeconds(this.getSeconds() + pNum);break; } return rtnDate; } function getDayOfWeek(pKind) { if(pKind.toUpperCase() == "K") { var week = new Array("��","��","ȭ","��","��","��","��"); return week[this.getDay()]; } else if(pKind.toUpperCase() == "C") { var week = new Array("��","��","��","�","��","��","��"); return week[this.getDay()]; } else if(pKind.toUpperCase() == "E") { var week = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); return week[this.getDay()]; } else if(pKind.toUpperCase() == "N") { return this.getDay() + ""; } return ""; } function getMonthDay() { var year = this.getFullYear(); var month = this.getMonth(); with(new Date(year, month + 1, 1, 12)) { setDate(0); return getDate(); } } function isLeapYear() { var yyyy = this.getFullYear(); return (new Date(yyyy, 1, 29)).getMonth() == 1 } function isLeapYear(year) { var yyyy = parseInt(year); return (new Date(yyyy, 1, 29)).getMonth() == 1 } function getDateTime( pDate, pMode ){ var rtnStr = null; sFDate = pDate.getFullYear(); sFDate = sFDate.toString() + (( pDate.getMonth() + 1 > 9 ) ? pDate.getMonth() + 1 : "0" + (pDate.getMonth() + 1)); sFDate = sFDate.toString() + (( pDate.getDate() > 9 ) ? pDate.getDate() : "0" + pDate.getDate()); sFTime = (( pDate.getHours() > 9 ) ? pDate.getHours() : "0" + pDate.getHours()); sFTime = sFTime.toString() + (( pDate.getMinutes() > 9 ) ? pDate.getMinutes() : "0" + pDate.getMinutes()); sFSec = (( pDate.getSeconds() > 9 ) ? pDate.getSeconds() : "0" + pDate.getSeconds() ); var x = new Array("��", "��", "ȭ", "��", "��", "��", "��"); sWeek = x[pDate.getDay()]; switch( pMode.toUpperCase() ){ case 'D': rtnStr = sFDate; break; case 'T': rtnStr = sFTime; break; case 'S': rtnStr = sFTime + sFSec; break; case 'A': rtnStr = sFDate + sFTime + sFSec; break; case 'W': rtnStr = sWeek; break; default: rtnStr = sFDate + sFTime; } return rtnStr; } function isValidDateTime(pDateString, pFormat) { var dt = pDateString.toDate(pFormat).getDateFormat(pFormat); return (pDateString == dt); } function getRemoveFormatter(pDateString) { if(pDateString.length == 10) { var arrDate = new Array(3); arrDate = pDateString.split("/"); if(arrDate.length != 3) { arrDate = pDateString.split("-"); } return arrDate[0] + arrDate[1] + arrDate[2]; } else { return pDateString; } } function isValidMonth(pMonth) { var month = 0; try { month = eval(pMonth); } catch(err) { return false; } return (month >= 1 && month <= 12); } function isValidDay(pDay) { var day = 0; try { day = eval(pDay); } catch(err) { return false; } return (day >= 1 && day <= 31); } function getDateInterval(fromDate, endDate, format) { var arrFromDate = new Array(3); var arrEndDate = new Array(3); if(fromDate.length == 8) { arrFromDate[0] = fromDate.substr(0, 4); arrFromDate[1] = fromDate.substr(4, 2); arrFromDate[2] = fromDate.substr(6, 2); } else if(fromDate.length == 10) { arrFromDate = fromDate.split("/"); if(arrFromDate.length != 3) { arrFromDate = fromDate.split("-"); } } if(endDate.length == 8) { arrEndDate[0] = endDate.substr(0, 4); arrEndDate[1] = endDate.substr(4, 2); arrEndDate[2] = endDate.substr(6, 2); } else if(endDate.length == 10) { arrEndDate = endDate.split("/"); if(arrEndDate.length != 3) { arrEndDate = endDate.split("-"); } } var rstFromDate = new Date(eval(arrFromDate[0]), eval(arrFromDate[1])-1, eval(arrFromDate[2])); var rstEndDate = new Date(eval(arrEndDate[0]), eval(arrEndDate[1])-1, eval(arrEndDate[2])); var rstFrom = rstFromDate.getTime(); var rstEnd = rstEndDate.getTime(); var daydue = Math.ceil((rstEnd - rstFrom) / (24 * 60 * 60 * 1000)); var yeardue = 0; var monthdue = 0; if (format == null || format == "" || format.toLowerCase() == "dd") { return daydue; } else { format = format.toLowerCase(); } var year = arrFromDate[0]; var month = arrFromDate[1]; var day = arrFromDate[2]; var dayCount = 0; if (day != 1) { month += 1; } do { if (month > 12) { month = 1; year += 1; } dayCount = getDayCountForMonth(year, month); if (daydue < dayCount) { break; } daydue = daydue - dayCount; month++; monthdue++; if (format == "yyyy" && daydue < 365 && (monthdue % 12) == 0) { break; } } while (true); if (format != "mmdd" && format != "mm" && monthdue >= 12) { yeardue = monthdue / 12; monthdue = monthdue % 12; } var result = ""; if (format == "yyyy") { result = yeardue; } else if (format == "mm") { result = monthdue; } else if (format == "mmdd") { result = monthdue + "/" + daydue; } else if (format == "yyyymm") { result = yeardue + "/" + monthdue; } else if (format == "yyyymmdd") { result = yeardue + "/" + monthdue + "/" + daydue; } return result; } function getDayCountForMonth(year, month) { var normal = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var leap = new Array(32, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); if (isLeapYear(year)) { return leap[month - 1]; } else { return normal[month - 1]; } } function getTimeInterval(fromTime, endTime) { var arrFromTime = new Array(3); var arrEndTime = new Array(3); if(fromTime.length == 4 || fromTime.length == 6) { arrFromTime[0] = fromTime.substr(0, 2); arrFromTime[1] = fromTime.substr(2, 2); arrFromTime[2] = fromTime.substr(4, 2); } else if(fromTime.length == 5 || fromTime.length == 8) { arrFromTime = fromTime.split(":"); } if(arrFromTime[2].length == 0) arrFromTime[2] = 0; if(endTime.length == 4 || endTime.length == 6) { arrEndTime[0] = endTime.substr(0, 2); arrEndTime[1] = endTime.substr(2, 2); arrEndTime[2] = endTime.substr(4, 2); } else if(endTime.length == 5 || endTime.length == 8) { arrEndTime = endTime.split(":"); } if(arrEndTime[2].length == 0) arrEndTime[2] = 0; var rstFromTime = new Date(2000, 1, 1, eval(arrFromTime[0]), eval(arrFromTime[1]), eval(arrFromTime[2]), 0); var rstEndTime = new Date(2000, 1, 1, eval(arrEndTime[0]), eval(arrEndTime[1]), eval(arrEndTime[2]), 0); var diffTime = (rstEndTime - rstFromTime) / 1000; return diffTime; } function getNewDate(){ var rtnDate = new Date(); var timediff = getGlobalVariable("timediff"); var serverInterval = 0; if(!isNull(timediff) && !isNaN(timediff)){ serverInterval = parseInt(timediff); } rtnDate.setTime(rtnDate.getTime() + serverInterval); return rtnDate; } function getCurrentDateTime(){ return getCurrentDate() + " " + getCurrentTime(); } function getCurrentDate() { var sDate = getNewDate(); rtnDate = sDate.getFullYear(); rtnDate = rtnDate.toString() + (( sDate.getMonth() + 1 > 9 ) ? sDate.getMonth() + 1 : "0" + (sDate.getMonth() + 1)); rtnDate = rtnDate.toString() + (( sDate.getDate() > 9 ) ? sDate.getDate() : "0" + sDate.getDate()) ; return rtnDate; } function getCurrentTime() { var sDate = getNewDate(); rtnTime = (( sDate.getHours() > 9 ) ? sDate.getHours() : "0" + sDate.getHours()); rtnTime = rtnTime.toString() + (( sDate.getMinutes() > 9 ) ? sDate.getMinutes() : "0" + sDate.getMinutes()); rtnTime = rtnTime.toString() + (( sDate.getSeconds() > 9 ) ? sDate.getSeconds() : "0" + sDate.getSeconds()); return rtnTime; } function getCurrentWeek(flag) { var sDate = getNewDate(); sWeek = new Array("��", "��", "ȭ", "��", "��", "��", "��"); rtnWeek = (flag == "K") ? sWeek[sDate.getDay()] : sDate.getDay(); return rtnWeek; } function getStrDate(strDate) { var strDate = strDate; var strYear = ""; var strMonth = ""; var strDay = ""; var strHour = ""; var strMin = ""; var strSec = ""; if (strDate.length < 14) { alert("�����ʹ� 14�ڸ� �̻��̾�� �մϴ�."); return null; } strYear = strDate.substr(0, 4); strMonth = strDate.substr(4, 2); strDay = strDate.substr(6, 2); strHour = strDate.substr(8, 2); strMin = strDate.substr(10, 2); strSec = strDate.substr(12, 2); strDate = strYear + "-"; strDate += strMonth + "-"; strDate += strDay + " "; strDate += strHour + ":"; strDate += strMin + ":"; strDate += strSec; return strDate; }