자바스크립트 음력, 양력 공휴일 체크 함수 만들기

반응형

입력한 날짜가 공휴일인지 검사를 한다.

/**
   * 입력한 날짜가 공휴일인지 검사를 한다.
   * 공휴일인 경우에는 경고창 후 멈춘다.
   * 입력형식 : 2024년 01월 14일 --> 20240114
   *
   * @param string
   */
function isHoliday(yyyymmdd) {
    // 검사년도
    var yyyy = yyyymmdd.substring(0, 4);
    var holidays = new Array();
    // 음력 공휴일을 양력으로 바꾸어서 입력
    var tmp01 = lunerCalenderToSolarCalenger(yyyy + "0101"); // 음력설날
    var tmp02 = lunerCalenderToSolarCalenger(yyyy + "0815"); // 음력추석
    holidays[0] = getDateNextPre(tmp01, "pre", 1); //String(Number(tmp01) - 1); // 음력설 첫째날
    holidays[1] = tmp01;   // 음력설 둘째날
    holidays[2] = getDateNextPre(tmp01, "next", 1);//Number(tmp01) + 1; // 음력설 셋째날
    holidays[3] = getDateNextPre(tmp02, "pre", 1);//Number(tmp02) - 1; // 추석 첫째날
    holidays[4] = tmp02;   // 추석 둘째날
    holidays[5] = getDateNextPre(tmp02, "next", 1);//Number(tmp02) + 1; // 추석 셋째날
    holidays[6] = lunerCalenderToSolarCalenger(yyyy + "0408"); // 석가탄신일
	
    // 양력 공휴일 입력
    holidays[7] = yyyy + "0101";  // 양력설날
    holidays[8] = yyyy + "0301";  // 삼일절
    holidays[9] = yyyy + "0405";  // 식목일
    holidays[10] = yyyy + "0505";  // 어린이날
    holidays[11] = yyyy + "0606";  // 현충일
    //holidays[12] = yyyy + "0717";  // 제헌절
    holidays[12] = yyyy + "0815";  // 광복절
    holidays[13] = yyyy + "1003";  // 개천절
    holidays[14] = yyyy + "1225";  // 성탄절
    for (var i = 0; i < holidays.length; i++) {
        if (holidays[i] == yyyymmdd) {
            return true;
        }
    }
}

 

음력을 양력으로 바꾸어서 반환한다.

/**
* 음력을 양력으로 바꾸어서 반환한다.
*
* @param string
* return string
*/
function lunerCalenderToSolarCalenger(input_day) {
    var kk = [[1, 2, 4, 1, 1, 2, 1, 2, 1, 2, 2, 1],   /* 1841 */
    [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1],
    [2, 2, 2, 1, 2, 1, 4, 1, 2, 1, 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, 1],
    [2, 1, 2, 1, 5, 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, 2, 1, 2, 2, 2, 1],
    [2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 2, 2],
    [2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2],
    [2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 5, 2],   /* 1851 */
    [2, 1, 2, 2, 1, 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, 5, 2, 1, 2, 1, 2],
    [1, 1, 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, 5, 2, 1, 2, 1, 2, 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],
    [2, 1, 6, 1, 1, 2, 1, 1, 2, 1, 2, 2],
    [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2],   /* 1861 */
    [2, 1, 2, 1, 2, 2, 1, 2, 2, 3, 1, 2],
    [1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2],
    [1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1],
    [2, 1, 1, 2, 4, 1, 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, 2],
    [1, 2, 2, 3, 2, 1, 1, 2, 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, 5, 2, 1],
    [2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2],   /* 1871 */
    [1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2],
    [1, 1, 2, 1, 2, 4, 2, 1, 2, 2, 1, 2],
    [1, 1, 2, 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, 5, 1, 2, 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, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1],
    [2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2],
    [1, 2, 1, 2, 1, 2, 5, 2, 2, 1, 2, 1],   /* 1881 */
    [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],
    [1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2],
    [2, 1, 1, 2, 3, 2, 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, 2, 1, 5, 2, 1, 1, 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],
    [1, 5, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2],
    [1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2],   /* 1891 */
    [1, 1, 2, 1, 1, 5, 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],
    [2, 1, 2, 1, 5, 1, 2, 1, 2, 1, 2, 1],
    [2, 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, 5, 2, 2, 1, 2, 1, 2, 1, 2, 1],
    [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, 1],
    [2, 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, 2, 1, 1, 2],
    [1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2],
    [1, 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, 2],
    [1, 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, 5, 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, 1, 2],
    [2, 2, 1, 2, 1, 4, 1, 1, 2, 1, 2, 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]];
    var gan = new Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸");
    var jee = new Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥");
    var ddi = new Array("쥐", "소", "범", "토끼", "용", "뱀", "말", "양", "원숭이", "닭", "개", "돼지");
    var week = new Array("일", "월", "화", "수", "목", "금", "토");
    var md = new Array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var year = input_day.substring(0, 4);
    var month = input_day.substring(4, 6);
    var day = input_day.substring(6, 8);
	
    // 음력에서 양력으로 변환
    var lyear, lmonth, lday, leapyes;
    var syear, smonth, sday;
    var mm, y1, y2, m1;
    var i, j, k1, k2, leap, w;
    var td, y;
    lyear = get_year(year);        // 년도 check
    lmonth = get_month(month);     // 월 check
    y1 = lyear - 1841;
    m1 = lmonth - 1;
    leapyes = 0;
    var byoonchecked = false;
    if (kk[y1][m1] > 2) {
        if (byoonchecked) {
            leapyes = 1;
            switch (kk[y1][m1]) {
                case 3:
                case 5:
                    mm = 29;
                    break;
                case 4:
                case 6:
                    mm = 30;
                    break;
            }
        } else {
            switch (kk[y1][m1]) {
                case 1:
                case 3:
                case 4:
                    mm = 29;
                    break;
                case 2:
                case 5:
                case 6:
                    mm = 30;
                    break;
            } // end of switch
        } // end of if
    } // end of if
    lday = get_day(day, mm);
    td = 0;
    for (i = 0; i < y1; i++) {
        for (j = 0; j < 12; j++) {
            switch (kk[i][j]) {
                case 1:
                    td = td + 29;
                    break;
                case 2:
                    td = td + 30;
                    break;
                case 3:
                    td = td + 58;    // 29+29
                    break;
                case 4:
                    td = td + 59;    // 29+30
                    break;
                case 5:
                    td = td + 59;    // 30+29
                    break;
                case 6:
                    td = td + 60;    // 30+30
                    break;
            } // end of switch
        } // end of for
    } // end of for
    for (j = 0; j < m1; j++) {
        switch (kk[y1][j]) {
            case 1:
                td = td + 29;
                break;
            case 2:
                td = td + 30;
                break;
            case 3:
                td = td + 58;    // 29+29
                break;
            case 4:
                td = td + 59;    // 29+30
                break;
            case 5:
                td = td + 59;    // 30+29
                break;
            case 6:
                td = td + 60;    // 30+30
                break;
        } // end of switch
    } // end of for
    if (leapyes == 1) {
        switch (kk[y1][m1]) {
            case 3:
            case 4:
                td = td + 29;
                break;
            case 5:
            case 6:
                td = td + 30;
                break;
        } // end of switch
    } // end of switch
    td = td + parseFloat(lday) + 22;
    // td : 1841 년 1 월 1 일 부터 원하는 날짜까지의 전체 날수의 합
    y1 = 1840;
    do {
        y1 = y1 + 1;
        if ((y1 % 400 == 0) || ((y1 % 100 != 0) && (y1 % 4 == 0))) {
            y2 = 366;
        }
        else {
            y2 = 365;
        }
        if (td <= y2) {
            break;
        }
        else {
            td = td - y2;
        }
    } while (1); // end do-While
    syear = y1;
    md[1] = Number(y2) - 337;
    m1 = 0;
    do {
        m1 = m1 + 1;
        if (td <= md[m1 - 1]) {
            break;
        }
        else {
            td = td - md[m1 - 1];
        }
    } while (1); // end of do-While
    smonth = Number(m1);
    sday = Number(td);
    // 월이 한자리인경우에는 앞에 0을 붙혀서 반환
    if (smonth < 10) {
        smonth = "0" + smonth;
    }
    // 일이 한자리인경우에는 앞에 0을 붙혀서 반환
    if (sday < 10) {
        sday = "0" + sday;
    }
    //return new String(syear + smonth + sday);
    return new String(String(syear) + String(smonth) + String(sday));
}

 

년도검사를 한다 => 년도가 검사 범위를 벗어나면 경고창 후 멈춘다.

 

/**
    * 년도검사를 한다.
    * 1841~2043년 까지만 검사가 가능하다.
    * 년도가 검사 범위를 벗어나면 경고창 후 멈춘다.
    *
    * @param int
    * @return int
    */
function get_year(src) {
    if ((src < 1841) || (src > 2043)) {
        alert('연도 범위는 1841 ~ 2043 까지입니다.');
        return;
    } else {
        return src;
    }
}

 

달이 12보다 크거나 1보다 작은지 검사한다 => 날짜가 잘못된 경우에는 경고창 후 멈춘다.

/**
* 달이 12보다 크거나 1보다 작은지 검사한다.
* 날짜가 잘못된 경우에는 경고창 후 멈춘다.
*
* @param int
* @return int
*/
function get_month(src) {
    if ((src < 1) || (src > 12)) {
        alert('월 범위는 1 ~ 12 까지입니다.');
        return;
    } else {
        return src;
    }
}

 

날짜가 1일보다 크고 src보다 작은 경우는 날짜를 반환한다 => 날짜가 잘못된 경우에는 경고창 후 멈춘다.

 

/**
* 날짜가 1일보다 크고 src보다 작은 경우는 날짜를 반환한다.
* 날짜가 잘못된 경우에는 경고창 후 멈춘다.
*
* @param int
* @param int
* @return int
*/
function get_day(src, day) {
    if ((src < 1) || (src > day)) {
        alert('일 범위가 틀립니다.');
        return;
    } else {
        return src;
    }
}

 

날짜의 입력된 일수 만큼의 날짜 return

/*
* 날짜의 입력된 일수 만큼의 날짜 return
* pyyyymmdd : 20240114
* pgubn : pre, next
* pday  : 1 2
* return : yyyymmdd
*/
function getDateNextPre(pyyyymmdd, pgubn, pday) {
    var ndate = new Date(pyyyymmdd.substring(0, 4), pyyyymmdd.substring(4, 6), pyyyymmdd.substring(6, 8));
    var chkdate = new Date(pyyyymmdd.substring(0, 4), pyyyymmdd.substring(4, 6), pyyyymmdd.substring(6, 8));
    switch (pgubn) {
        case "pre":
            chkdate.setDate(ndate.getDate() - pday);
            break;
        case "next":
            chkdate.setDate(ndate.getDate() + pday);
            break;
    }
    //날짜포맷맞추기
    var szyyyymmdd = String(chkdate.getFullYear());
    if (String("0" + String(chkdate.getMonth())).length > 2) {
        szyyyymmdd = szyyyymmdd + "" + String(chkdate.getMonth());
    } else {
        szyyyymmdd = szyyyymmdd + "0" + String(chkdate.getMonth());
    }
    if (String("0" + String(chkdate.getDate())).length > 2) {
        szyyyymmdd = szyyyymmdd + "" + String(chkdate.getDate());
    } else {
        szyyyymmdd = szyyyymmdd + "0" + String(chkdate.getDate());
    }
    var rtnDate = szyyyymmdd;
    return rtnDate;
}

 

isHoliday에 날짜 년-월-일을 입력하여 공휴일인지 true / false 값을 return 받을 수 있다.

실행 함수 : isHoliday(strDate.replace(/-/g, ""))
return 값 : true / false
반응형