티스토리 뷰

목차

    반응형

    2월28일, 7월31일 같은 월별 일자, 날짜 계산 해주는 JavaScript function 소스입니다.


    출처 : 개발자포럼


    자바스크립트 date 함수


    ▷ 자바스크립트 날짜 계산 소스 : 사용 방법


    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 사용 방법
    var today = getDate();
    today = '2011-04-27';
     
    var today = getDate(nullnullnull'.');
    today = '2011.04.27';
     
    var day1 = getDate(0-10);
    day1 = '2011-03-27';
    cs

    ▷ function getDate()


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    /**
    * 날짜계산기
    * 아무것도 안던지면 오늘날짜 반환
    * 오늘일자 기준 년,월,일 +- 계산해드림 
    * @param addYear : 년도계산 +10, -10 등등
    * @param addMonth : 월계산 +10, -10 등등
    * @param addDay : 일자계산 +10, -10 등등 
    * @param token : 기본값 "-"
    * @return yyyy-mm-dd
    */
    function getDate(addYear, addMonth, addDay, token)
    {
        token = token == undefined || token == null ? "-" : token;
        addYear = addYear == null ? 0 : addYear;
        addMonth = addMonth == null ? 0 : addMonth;
        addDay = addDay == null ? 0 : addDay;
     
        var now = new Date();
        var ry = now.getFullYear();
        var rm = now.getMonth() + 1;
        var rd = now.getDate();
        
        if(addYear != 0) { //cal year
            ry = ry + addYear;
        }
        
        if(addMonth != 0) {//cal month
            var isRun = true;
            rm = rm + addMonth;
     
            while (isRun == true) {
                if(rm > 12){
                    ry++;
                    rm = rm - 12;
                } else if(rm < 1) {
                    <br />                 ry--;
                    rm = 12 + rm;
                }
                
                if(rm > 0 && rm < 13){
                    <br />                 isRun = false;
                }
            }
        }
     
        var cal = new Date(ry, rm, 0);
     
        if(rd > cal.getDate())
            rd = cal.getDate();
     
        if (addDay != 0) {
            rd = rd + addDay;
     
            if(rd > cal.getDate() || rd < 1) {
                <br />             var isRun = true;
     
                while(isRun == true) {
                    if(rd > cal.getDate()) {
                        rd = rd - cal.getDate();
                        rm++;
     
                        if (rm > 12) {
                            ry++;
                            rm = 1;
                        }
                    }
     
                    if(rd < 1) { 
                        <br />                     rm--;
     
                        if(rm < 1) { 
                            <br />                         ry--;
                            rm = 12;
                        }
     
                        cal = new Date(ry, rm, 0);
                        rd = cal.getDate() + rd;
                    }
                    cal = new Date(ry, rm, 0);
     
                    if(rd <= cal.getDate() && rd >= 1)
                        isRun = false;
                }
            }
     
            if(rd > cal.getDate() || rd < 1) {
                <br />             cal = new Date(ry, rm, 0);
            }
        }
            
        if(rm.toString().length < 2<br />         rm = '0' + rm;
        if(rd.toString().length < 2<br />         rd = '0' + rd;
        
        return ry + token + rm + token + rd;
    }
    cs


    ▷ function nvl


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function nvl(str, nullValue)
    {
        if(nullValue == undefined || nullValue == null)
            nullValue = \'\';
     
        if(str == undefined || str == null) {
            str = nullValue;
        }
     
        return str;
    }
    cs


    자바스크립트 날짜 계산 소스 (Date 함수)



    관련 글


    C# 날짜 시간 차이 비교, TimeSpan 계산 (DateTime)

    [자바스크립트 강좌 009] 즉시 실행 함수 사용 (Javascript Function)

    [자바스크립트 강좌 003] NaN(Not a Number) 원인, 수치 연산 실패



    ⓒ written by vicddory (출처 : 개발자 포럼)

    반응형