본문 바로가기
C++ 200제/코딩 IT 정보

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

by vicddory 2019. 3. 24.
반응형

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 (출처 : 개발자 포럼)

반응형