상세 컨텐츠

본문 제목

[JS]자바스크립트 년도, 개월, 일 날짜 계산

카테고리 없음

by 겸둥선짱 2022. 3. 25. 17:07

본문

오늘 날짜


오늘 날짜로부터 1개월 전의 일자 계산

$("#srchUseDtFrom").datepicker('update', getCalcDate(0, -1, 0));

오늘 날짜
1개월 전

 


오늘 날짜로부터 2년 1개월 전의 일자 계산

$("#srchUseDtFrom").datepicker('update', getCalcDate(-2, -1, 0));

오늘 날짜
2년 1개월 전


오늘 날짜로부터 2년 1개월 전이지만 5일 후의 일자 계산

$("#srchUseDtFrom").datepicker('update', getCalcDate(-2, -1, 5));

오늘 날짜
2년 1개월 전, 5일 후

2020년은 윤년이기 때문에 2월 29일까지 있다.

따라서 2020년 2월 25일에서 5일을 더하면 3월 1일이 된다.

윤년까지 적용이 된다.

2일동안 일 하면서 고민한 결과다. 뿌듯-

 


 

검색했을 때 안나왔어서 나같은 사람들을 위해 도움이 될까하여 올린다. + 나중에 또 써먹을때를 위한 기록용

아래는 소스

파라미터 값으로 양수, 음수 둘 다 가능하다.

변경 없을 땐 0으로 넘기면 된다.

/**
 * pYear년, pMonth 월, pDate 일일 전 날짜 return YYYY-MM-DD형식
 * @param pYear  연도 수
 * @param pMonth 개월 수
 * @param pDate  일 수
 */
function getCalcDate(pYear, pMonth, pDate) {
    let tday = new Date();

    // 년도 및 월 계산
    let nMonthDay = new Date(tday.getFullYear() + pYear, tday.getMonth() + pMonth + 1, 0);

    // 오늘날짜가 지난n달 전의 마지막날짜보다 크다면 날을 그 달의 마지막날로 세팅
    if (tday.getDate() > nMonthDay.getDate()) {
        nMonthDay.setDate(nMonthDay.getDate());
    } else {
        nMonthDay.setDate(tday.getDate());
    }

    // 일 수 계산
    nMonthDay.setDate(nMonthDay.getDate() + pDate);

    // 최종
    let tYear = nMonthDay.getFullYear(); // 년도
    let tMonth = (nMonthDay.getMonth() + 1).toString(); // 월
    if (tMonth.length < 2) {
        tMonth = LIMS_lpad(tMonth, 2, '0');
    }
    let tDate = (nMonthDay.getDate()).toString(); // 일
    if (tDate.length < 2) {
        tDate = LIMS_lpad(tDate, 2, '0');
    }
    return tYear + '-' + tMonth + '-' + tDate;
}