var yearSelect ; var monthSelect ; var todayDate ; if ( typeof ( headerfooter _ time _ year ) ! = " undefined "){/* 오늘 의 날짜 를 서버 날짜 로 설정 */ todayDate = new Date ( headerfooter _ time _ year , headerfooter _ time _ month - 1 , headerfooter _ time _ day , headerfooter _ time _ hour , headerfooter _ time _ minute , headerfooter _ time _ second ) ;} elsetodayDate = new Date ( ) ; function memorialDay ( name , month , day , solarLunar , holiday , type ) { this . name = name ; this . month = month ; this . day = day ; this . solarLunar = solarLunar ; this . holiday = holiday ;/* true : 빨간 날 false : 안 빨간 날 */ this . type = type ;/* true : real time setting */ this . techneer = true ;} var memorialDays = Array ( new memorialDay ( " 신정 ", 1 , 1 , 1 , true ) , new memorialDay ( "", 12 , 0 , 2 , true , true ) , /* 실시간 으로 정 해짐 */ new memorialDay ( " 설날 ", 1 , 1 , 2 , true ) , new memorialDay ( "", 1 , 2 , 2 , true ) , new memorialDay ( " 삼일절 ", 3 , 1 , 1 , true ) , new memorialDay ( " 석가 탄신일 ", 4 , 8 , 2 , true ) , new memorialDay ( " 어린이날 ", 5 , 5 , 1 , true ) , new memorialDay ( " 현충일 ", 6 , 6 , 1 , true ) , new memorialDay ( " 광복절 ", 8 , 15 , 1 , true ) , new memorialDay ( "", 8 , 14 , 2 , true ) , new memorialDay ( " 추석 ", 8 , 15 , 2 , true ) , new memorialDay ( "", 8 , 16 , 2 , true ) , new memorialDay ( " 개천절 ", 10 , 3 , 1 , true ) , new memorialDay ( " 성탄절 ", 12 , 25 , 1 , true ) , new memorialDay ( " 정월 대 보름 ", 1 , 15 , 2 , false ) , new memorialDay ( " 식목일 ", 4 , 5 , 1 , false ) , new memorialDay ( " 단오 ", 5 , 5 , 2 , false ) , new memorialDay ( " 국군 의 날 ", 10 , 1 , 1 , false ) , new memorialDay ( " 한글날 ", 10 , 9 , 1 , false ) , new memorialDay ( " 625 전쟁 일 ", 6 , 25 , 1 , false ) , new memorialDay ( " 삼짇날 ", 3 , 3 , 2 , false ) , new memorialDay ( " 물 의 날 ", 3 , 22 , 1 , false ) , new memorialDay ( " 만우절 ", 4 , 1 , 1 , false ) , new memorialDay ( " 장애인 의 날 ", 4 , 20 , 1 , false ) , new memorialDay ( " 과학 의 날 ", 4 , 21 , 1 , false ) , new memorialDay ( " 충무공 탄신일 ", 4 , 28 , 1 , false ) , new memorialDay ( " 근로자 의 날 · 법의날 ", 5 , 1 , 1 , false ) , new memorialDay ( " 어버이날 ", 5 , 8 , 1 , false ) , new memorialDay ( " 스승 의 날 ", 5 , 15 , 1 , false ) , new memorialDay ( " 발명 의 날 ", 5 , 19 , 1 , false ) , new memorialDay ( " 바다 의 날 ", 5 , 31 , 1 , false ) , new memorialDay ( " 환경 의 날 ", 6 , 5 , 1 , false ) , new memorialDay ( " 유두 ", 6 , 15 , 2 , false ) , new memorialDay ( " 칠월 칠석 ", 7 , 7 , 2 , false ) , new memorialDay ( " 제헌절 ", 7 , 17 , 1 , false ) , new memorialDay ( " 중양절 ", 9 , 9 , 2 , false ) , new memorialDay ( " 철도 의 날 ", 9 , 18 , 1 , false ) , new memorialDay ( " 소방 의 날 ", 11 , 9 , 1 , false ) ) ; function myDate ( year , month , day , leapMonth ) { this . year = year ; this . month = month ; this . day = day ; this . leapMonth = leapMonth ;}// 음력 데이터 ( 평 달 - 작은달 : 1 , 큰달 : 2 ) / / ( 윤달 이 있 는 달 - 평 달 이 작 고 윤달 도 작 으면 : 3 , 평 달 이 작 고 윤달 이 크 면 : 4 ) / / ( 윤달 이 있 는 달 - 평 달 이 크 고 윤달 이 작 으면 : 5 , 평 달 과 윤달 이 모두 크 면 : 6 ) var lunarMonthTable = [ [ 2 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 5 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , / * 1901 */[ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 3 , 2 , 1 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 4 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 1 , 5 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 5 , 1 , 2 , 2 , 1 , 2 , 2 ] , / * 1911 */[ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 5 , 1 , 2 , 1 , 2 , 1 , 1 , 2 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 3 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 5 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 ] , / * 1921 */[ 2 , 1 , 2 , 2 , 3 , 2 , 1 , 1 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 ] , [ 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 ] , [ 2 , 1 , 2 , 5 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 5 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 2 , 1 , 1 , 5 , 1 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , / * 1931 */[ 2 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 6 , 1 , 2 , 1 , 2 , 1 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 4 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 1 , 2 , 1 , 4 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 2 , 4 , 1 , 1 , 2 , 1 , 2 , 1 ] , / * 1941 */[ 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 1 , 1 , 2 , 4 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , [ 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 5 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 2 , 3 , 2 , 1 , 2 , 1 , 2 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , / * 1951 */[ 1 , 2 , 1 , 2 , 4 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 4 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 1 , 5 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 2 , 5 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 ] , / * 1961 */[ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 3 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 5 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 5 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 5 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , / * 1971 */[ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 5 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 2 , 1 , 5 , 2 , 1 , 1 , 2 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 1 ] , [ 2 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 6 , 1 , 2 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 ] , / * 1981 */[ 2 , 1 , 2 , 3 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 5 , 2 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 ] , [ 2 , 1 , 2 , 2 , 1 , 5 , 2 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 1 , 1 , 5 , 1 , 2 , 1 , 2 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 ] , / * 1991 */[ 1 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 ] , [ 1 , 2 , 5 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 2 , 1 , 5 , 2 , 1 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 3 , 2 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 2 , 2 , 3 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , / * 2001 */[ 2 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 1 , 5 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 1 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 5 , 2 , 2 , 1 , 2 , 2 ] , [ 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , [ 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 1 , 5 , 1 , 2 , 1 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , / * 2011 */[ 2 , 1 , 6 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 5 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 1 , 2 , 3 , 2 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 ] , [ 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 2 , 1 , 2 , 5 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 ] , / * 2021 */[ 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 5 , 2 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 5 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 2 ] , [ 1 , 2 , 2 , 1 , 5 , 1 , 2 , 1 , 1 , 2 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 ] , [ 1 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 5 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , / * 2031 */[ 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 5 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 ] , [ 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 4 , 1 , 1 , 2 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 1 , 2 ] , [ 2 , 2 , 1 , 2 , 1 , 2 , 1 , 2 , 1 , 1 , 2 , 1 ] , [ 2 , 2 , 1 , 2 , 5 , 2 , 1 , 2 , 1 , 2 , 1 , 1 ] , [ 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 , 1 , 2 , 1 ] , [ 2 , 1 , 1 , 2 , 1 , 2 , 2 , 1 , 2 , 2 , 1 , 2 ] , / * 2041 */[ 1 , 5 , 1 , 2 , 1 , 2 , 1 , 2 , 2 , 2 , 1 , 2 ] , [ 1 , 2 , 1 , 1 , 2 , 1 , 1 , 2 , 2 , 1 , 2 , 2 ] ] ;/* 양력 <-> 음력 변환 함수 * type : 1 - 양력 -> 음력 * 2 - 음력 -> 양력 * leapmonth : 0 - 평 달 * 1 - 윤달 ( type = 2 일 때 만 유효 ) */ function lunarCalc ( year , month , day , type , leapmonth ) { var solYear , solMonth , solDay ; var lunYear , lunMonth , lunDay ; var lunLeapMonth , lunMonthDay ; var i , lunIndex ; var solMonthDay = [ 31 , 0 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ;/* range check */ if ( year < 1900 || year > 2040 ) { alert ( ' 1900 년 부터 2040 년 까지 만 지원 합니다 '); return ;}/* 속도 개선 을 위해 기준 일자 를 여러 개 로 한다 */ if ( year >= 2000 ) {/* 기준 일자 양력 2000 년 1 월 1 일 ( 음력 1999 년 11 월 25 일 ) */ solYear = 2000 ; solMonth = 1 ; solDay = 1 ; lunYear = 1999 ; lunMonth = 11 ; lunDay = 25 ; lunLeapMonth = 0 ; solMonthDay [ 1 ] = 29 ;/* 2000 년 2 월 28 일 */ lunMonthDay = 30 ;/* 1999 년 11 월 */} else if ( year >= 1970 ) {/* 기준 일자 양력 1970 년 1 월 1 일 ( 음력 1969 년 11 월 24 일 ) */ solYear = 1970 ; solMonth = 1 ; solDay = 1 ; lunYear = 1969 ; lunMonth = 11 ; lunDay = 24 ; lunLeapMonth = 0 ; solMonthDay [ 1 ] = 28 ;/* 1970 년 2 월 28 일 */ lunMonthDay = 30 ;/* 1969 년 11 월 */} else if ( year >= 1940 ) {/* 기준 일자 양력 1940 년 1 월 1 일 ( 음력 1939 년 11 월 22 일 ) */ solYear = 1940 ; solMonth = 1 ; solDay = 1 ; lunYear = 1939 ; lunMonth = 11 ; lunDay = 22 ; lunLeapMonth = 0 ; solMonthDay [ 1 ] = 29 ;/* 1940 년 2 월 28 일 */ lunMonthDay = 29 ;/* 1939 년 11 월 */} else {/* 기준 일자 양력 1900 년 1 월 1 일 ( 음력 1899 년 12 월 1 일 ) */ solYear = 1900 ; solMonth = 1 ; solDay = 1 ; lunYear = 1899 ; lunMonth = 12 ; lunDay = 1 ; lunLeapMonth = 0 ; solMonthDay [ 1 ] = 28 ;/* 1900 년 2 월 28 일 */ lunMonthDay = 30 ;/* 1899 년 12 월 */} lunIndex = lunYear - 1899 ; while ( true ) {// document . writｅ ( solYear + "-" + solMonth + "-" + solDay + "<->");// document . writｅ ( lunYear + "-" + lunMonth + "-" + lunDay + " " + lunLeapMonth + " " + lunMonthDay + ""); if ( type == 1 && year == solYear && month == solMonth && day == solDay ) { return new myDate ( lunYear , lunMonth , lunDay , lunLeapMonth ) ;} else if ( type == 2 && year == lunYear && month == lunMonth && day == lunDay && leapmonth == lunLeapMonth ) { return new myDate ( solYear , solMonth , solDay , 0 ) ;}/* add a day of solar calendar */ if ( solMonth == 12 && solDay == 31 ) { solYear ++; solMonth = 1 ; solDay = 1 ;/* set monthDay of Feb */ if ( solYear % 400 == 0 ) solMonthDay [ 1 ] = 29 ; else if ( solYear % 100 == 0 ) solMonthDay [ 1 ] = 28 ; else if ( solYear % 4 == 0 ) solMonthDay [ 1 ] = 29 ; elsesolMonthDay [ 1 ] = 28 ;} else if ( solMonthDay [ solMonth - 1 ] == solDay ) { solMonth ++; solDay = 1 ;} elsesolDay ++;/* add a day of lunar calendar */ if ( lunMonth == 12 &&(( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 1 && lunDay == 29 ) ||( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 2 && lunDay == 30 ) ) ) { lunYear ++; lunMonth = 1 ; lunDay = 1 ; if ( lunYear > 2043 ) { alert ( " 입력 하 신 달 은 없 습니다 . "); break ;} lunIndex = lunYear - 1899 ; if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 1 ) lunMonthDay = 29 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 2 ) lunMonthDay = 30 ;} else if ( lunDay == lunMonthDay ) { if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] >= 3 && lunLeapMonth == 0 ) { lunDay = 1 ; lunLeapMonth = 1 ;} else { lunMonth ++; lunDay = 1 ; lunLeapMonth = 0 ;} if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 1 ) lunMonthDay = 29 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 2 ) lunMonthDay = 30 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 3 ) lunMonthDay = 29 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 4 && lunLeapMonth == 0 ) lunMonthDay = 29 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 4 && lunLeapMonth == 1 ) lunMonthDay = 30 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 5 && lunLeapMonth == 0 ) lunMonthDay = 30 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 5 && lunLeapMonth == 1 ) lunMonthDay = 29 ; else if ( lunarMonthTable [ lunIndex ] [ lunMonth - 1 ] == 6 ) lunMonthDay = 30 ;} elselunDay ++;}} function getWeekday ( year , month , day ) { var weekday = Array ( " 일 ", " 월 ", " 화 ", " 수 ", " 목 ", " 금 ", " 토 "); var date = new Date ( year , month - 1 , day ) ; if ( date ) return weekday [ date . getDay ( ) ] ;} function getPassDay ( year , month , day ) { var date = new Date ( year , month - 1 , day ) ; var interval = Math . floor ( ( todayDate - date ) / ( 1000 * 60 * 60 * 24 ) + 1 ) ; return interval ;} function getDDay ( year , month , day ) { var date = new Date ( year , month - 1 , day ) ; var interval = Math . floor ( ( date - todayDate ) / ( 1000 * 60 * 60 * 24 ) + 1 ) ; return interval ;} function getDateSpecificInterval ( year , month , day , interval ) { var date = new Date ( year , month - 1 , parseInt ( day , 10 ) + parseInt ( interval , 10 ) - 1 ) ; return date ;} function dayCalcDisplay ( type ) { switch ( type ) {/* 오늘 은 몇일 째 */ case 1 : var startYear = parseInt ( document . getElementById ( " mStartYear "). value , 10 ) ; var startMonth = parseInt ( document . getElementById ( " mStartMonth "). value , 10 ) ; var startDay = parseInt ( document . getElementById ( " mStartDay "). value , 10 ) ; break ;/* x 일 째 되 는 날 */ case 2 : var startYear = parseInt ( document . getElementById ( " mmStartYear "). value , 10 ) ; var startMonth = parseInt ( document . getElementById ( " mmStartMonth "). value , 10 ) ; var startDay = parseInt ( document . getElementById ( " mmStartDay "). value , 10 ) ; break ;/* D - day */ case 3 : var startYear = parseInt ( document . getElementById ( " targetYear "). value , 10 ) ; var startMonth = parseInt ( document . getElementById ( " targetMonth "). value , 10 ) ; var startDay = parseInt ( document . getElementById ( " targetDay "). value , 10 ) ; break ;/* 요일 계산 */ case 4 : var startYear = parseInt ( document . getElementById ( " weekdayYear "). value , 10 ) ; var startMonth = parseInt ( document . getElementById ( " weekdayMonth "). value , 10 ) ; var startDay = parseInt ( document . getElementById ( " weekdayDay "). value , 10 ) ; break ;/* 양력 음력 변환 */ case 5 : var startYear = parseInt ( document . getElementById ( " lsStartYear "). value , 10 ) ; var startMonth = parseInt ( document . getElementById ( " lsStartMonth "). value , 10 ) ; var startDay = parseInt ( document . getElementById ( " lsStartDay "). value , 10 ) ; break ;} if ( ! startYear || startYear == 0 || ! startMonth || startMonth == 0 || ! startDay || startDay == 0 ) { alert ( ' 날짜 를 입력 해 주 세요 '); return ;} var solMonthDay = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ; if ( startYear % 400 == 0 || ( startYear % 4 == 0 && startYear % 100 ! = 0 ) ) solMonthDay [ 1 ] += 1 ; if ( document . getElementById ( ' solarLunar '). value == ' solar ' && startDay > 30 ) { alert ( " 날짜 범위 를 벗어났 습니다 . 다시 입력 해 주 세요 ") ; return ;} if ( startMonth < 1 || startMonth > 12 || startDay < 1 || ( document . getElementById ( ' solarLunar '). value ! = ' solar ' && startDay > solMonthDay [ startMonth - 1 ] ) ) { if ( solMonthDay [ 1 ] == 28 && startMonth == 2 && startDay > 28 ) alert ( " 윤년 이 아닙니다 . 다시 입력 해 주 세요 "); elsealert ( " 날짜 범위 를 벗어났 습니다 . 다시 입력 해 주 세요 "); return ;} var startDate = new Date ( startYear , startMonth - 1 , startDay ) ; var today = new Date ( todayDate . getFullYear ( ) , todayDate . getMonth ( ) , todayDate . getDate ( ) ) ; switch ( type ) {/* 오늘 은 몇일 째 */ case 1 : if ( today < startDate ) { alert ( " 기준일 을 오늘 보다 이전 날짜 로 설정 하 세요 "); return ;} var interval = getPassDay ( startYear , startMonth , startDay ) ; document . getElementById ( " day 1 "). value = interval ; break ;/* x 일 되 는 날 은 */ case 2 : /* if ( today < startDate ) { alert ( " 기준일 을 오늘 이전 날짜 로 설정 하 세요 "); return ;}*/ var day 2 = document . getElementById ( " day 2 "). value ; if ( day 2 <= 0 ) { alert ( " 0 보다 큰 수 를 입력 하 세요 "); return ;} var date = getDateSpecificInterval ( startYear , startMonth , startDay , day 2 ) ; document . getElementById ( " resultDay "). value = String ( date . getFullYear ( ) ) + " 년 " + String ( date . getMonth ( ) + 1 ) + " 월 " + String ( date . getDate ( ) ) + " 일 "; break ;/* D - Day */ case 3 : var interval = getDDay ( startYear , startMonth , startDay ) ; if ( today > startDate ) { alert ( " 기준일 을 오늘 이후 날짜 로 설정 하 세요 "); return ;} document . getElementById ( " day 3 "). value = interval ; break ;/* 요일 계산 */ case 4 : if ( startYear < 100 ) { alert ( ' 년 도 를 100 년 이후 로 입력 해 주 세요 '); return ;} weekday . value = getWeekday ( startYear , startMonth , startDay ) + " 요일 "; break ;/* 양력 / 음력 변환 */ case 5 : if ( document . getElementById ( ' solarLunar '). value == ' solar '){ var leapMonth = document . getElementById ( ' leapMonth '). checked ; var date = lunarCalc ( startYear , startMonth , startDay , 2 , leapMonth ) ;} else { var date = lunarCalc ( startYear , startMonth , startDay , 1 ) ;} if ( date ) { document . getElementById ( ' solarLunarDay '). value = date . year + " 년 " + ( date . leapMonth ? " 윤 " : "") + date . month + " 월 " + date . day + " 일 ";} else { document . getElementById ( ' solarLunarDay '). value = "";} break ;}} function memorialDayCheck ( solarDate , lunarDate ) { var i ; var memorial ; for ( i = 0 ; i < memorialDays . length ; i ++){ if ( memorialDays [ i ] . month == solarDate . month && memorialDays [ i ] . day == solarDate . day && memorialDays [ i ] . solarLunar == 1 ) return memorialDays [ i ] ; if ( memorialDays [ i ] . month == lunarDate . month && memorialDays [ i ] . day == lunarDate . day && memorialDays [ i ] . solarLunar == 2 &&! memorialDays [ i ] . leapMonth ) return memorialDays [ i ] ;} return null ;}/* function setStartDate ( year , month , day ) { document . getElementById ( ' startYear '). value = year ; document . getElementById ( ' startMonth '). value = month ; document . getElementById ( ' startDay '). value = day ;}*/ function setCalendar ( year , month ) { var i ; var oYearSelect = document . getElementById ( ' yearSelect '); var oMonthSelect = document . getElementById ( ' monthSelect '); if ( ! year ) { year = oYearSelect . value ; month = oMonthSelect . value ;} else { for ( i = 0 ; i < oYearSelect . length ; i ++) if ( oYearSelect [ i ] . value == year ) { oYearSelect . selectedIndex = i ; break ;} for ( i = 0 ; i < oMonthSelect . length ; i ++) if ( oMonthSelect [ i ] . value == month ) { oMonthSelect . selectedIndex = i ; break ;}} var monthDay = Array ( 31 , 0 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ) ;/* set monthDay of Feb */ if ( year % 400 == 0 ) monthDay [ 1 ] = 29 ; else if ( year % 100 == 0 ) monthDay [ 1 ] = 28 ; else if ( year % 4 == 0 ) monthDay [ 1 ] = 29 ; elsemonthDay [ 1 ] = 28 ;/* set the day before 설날 */ if ( lunarMonthTable [ year - 1 - 1899 ] [ 11 ] == 1 ) memorialDays [ 1 ] . day = 29 ; else if ( lunarMonthTable [ year - 1 - 1899 ] [ 11 ] == 2 ) memorialDays [ 1 ] . day = 30 ; var date = new Date ( year , month - 1 , 1 ) ; var startWeekday = date . getDay ( ) ;/* clean all day cell */ for ( i = 0 ; i < 42 ; i ++){ document . getElementById ( ' dayCell ' + i ) . innerHTML = ""; document . getElementById ( ' memoCell ' + i ) . innerHTML = "";}/* fill day cell */ for ( i = 0 ; i < monthDay [ month - 1 ] ; i ++){ var index = startWeekday + i ; var dayHTML ; var memoHTML ; var solarDate = new myDate ( year , month , i + 1 ) ; var lunarDate = lunarCalc ( year , month , i + 1 , 1 ) ;/* memorial day */ var memorial = memorialDayCheck ( solarDate , lunarDate ) ;/* 쉬 지 않 는 기념일 */ var memorialDay = false ; if ( memorial && memorial . holiday == false ) memorialDay = true ;/* day print */ dayHTML = " HIGHLIGHT _ START " + ( i + 1 ) + " HIGHLIGHT _ END ";/* decoration */ if ( ( memorial && memorial . holiday ) || index % 7 == 0 ) dayHTML = dayHTML . replace ( " COLOR ", "# DD 7403 "); else if ( index % 7 == 6 ) dayHTML = dayHTML . replace ( " COLOR ", "# 3 C 8096 "); if ( memorial ) dayHTML = dayHTML . replace ( " TITLE ", memorial . name ) ; if ( todayDate . getFullYear ( ) == year && todayDate . getMonth ( ) + 1 == month && todayDate . getDate ( ) == i + 1 ) { dayHTML = dayHTML . replace ( " HIGHLIGHT _ START ", ""); dayHTML = dayHTML . replace ( " HIGHLIGHT _ END ", "");} dayHTML = dayHTML . replace ( " TITLE ", ""); dayHTML = dayHTML . replace ( " COLOR ", ""); dayHTML = dayHTML . replace ( " HIGHLIGHT _ START ", ""); dayHTML = dayHTML . replace ( " HIGHLIGHT _ END ", ""); document . getElementById ( ' dayCell ' + index ) . innerHTML = dayHTML ;/* lunar calnedar print */ if ( lunarDate . day == 1 || lunarDate . day == 15 ) { memoHTML = "";} elsememoHTML = ""; document . getElementById ( ' memoCell ' + index ) . innerHTML = memoHTML ;}} function lunarMonthCheck ( ) { if ( document . getElementById ( ' solarLunar '). value == " solar ") document . getElementById ( ' leapMonth '). disabled = false ; elsedocument . getElementById ( ' leapMonth '). disabled = true ;} var ayear = todayDate . getFullYear ( ) , amonth = todayDate . getMonth ( ) + 1 ; function noAlpha ( e ) { if ( e . keyCode < 48 || e . keyCode > 57 ) e . returnValue = false ;} for ( var i = 1900 , selectStr = ""; i <= 2030 ; i ++) selectStr += "" + i + " 년 "; selectStr += ""; document . writｅ ( selectStr ) ; 1900 년 1901 년 1902 년 1903 년 1904 년 1905 년 1906 년 1907 년 1908 년 1909 년 1910 년 1911 년 1912 년 1913 년 1914 년 1915 년 1916 년 1917 년 1918 년 1919 년 1920 년 1921 년 1922 년 1923 년 1924 년 1925 년 1926 년 1927 년 1928 년 1929 년 1930 년 1931 년 1932 년 1933 년 1934 년 1935 년 1936 년 1937 년 1938 년 1939 년 1940 년 1941 년 1942 년 1943 년 1944 년 1945 년 1946 년 1947 년 1948 년 1949 년 1950 년 1951 년 1952 년 1953 년 1954 년 1955 년 1956 년 1957 년 1958 년 1959 년 1960 년 1961 년 1962 년 1963 년 1964 년 1965 년 1966 년 1967 년 1968 년 1969 년 1970 년 1971 년 1972 년 1973 년 1974 년 1975 년 1976 년 1977 년 1978 년 1979 년 1980 년 1981 년 1982 년 1983 년 1984 년 1985 년 1986 년 1987 년 1988 년 1989 년 1990 년 1991 년 1992 년 1993 년 1994 년 1995 년 1996 년 1997 년 1998 년 1999 년 2000 년 2001 년 2002 년 2003 년 2004 년 2005 년 2006 년 2007 년 2008 년 2009 년 2010 년 2011 년 2012 년 2013 년 2014 년 2015 년 2016 년 2017 년 2018 년 2019 년 2020 년 2021 년 2022 년 2023 년 2024 년 2025 년 2026 년 2027 년 2028 년 2029 년 2030 년 for ( var i = 1 , selectStr = ""; i <= 12 ; i ++) selectStr += "" + i + " 월 "; selectStr += ""; document . writｅ ( selectStr ) ; 1 월 2 월 3 월 4 월 5 월 6 월 7 월 8 월 9 월 10 월 11 월 12 월 일월 화 수목 금토 for ( i = 0 ; i < 6 ; i ++){ document . writｅ ( ""); for ( j = 0 ; j < 7 ; j ++) document . writｅ ( ""); document . writｅ ( ""); document . writｅ ( ""); for ( j = 0 ; j < 7 ; j ++) document . writｅ ( ""); document . writｅ ( " " ) ; } / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ///////////////////////// by Choi , Sungjoonif ( typeof ( rege _ 0 _ 1 ) ! = " undefined " && 1900 <= rege _ 0 _ 1 && rege _ 0 _ 1 <= 2030 ) { ayear = rege _ 0 _ 1 ; amonth = 1 ;} if ( typeof ( rege _ 0 _ 2 ) ! = " undefined " && 1 <= rege _ 0 _ 2 && rege _ 0 _ 2 <= 12 ) amonth = rege _ 0 _ 2 ; / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / ///////////////////////// 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9202122232425262728293031