날짜 유효성 검증


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
/* 날짜 관련 유틸리티 */
const WsDate = {
        
    /* 날짜 일 수 관련 배열 */
    WS_DAYS : [31,28,31,30,31,30,31,31,30,31,30,31],
    
    /* 유효한 날짜인지 여부 검사 */
    isValid : function(yyyymmdd){
        if!yyyymmdd.match(/^[0-9]{8}$/) ){
            return false;
        }
 
        var yyyy = yyyymmdd.substr(0,4);
        var mm = yyyymmdd.substr(4,2);
        var dd = yyyymmdd.substr(6,2);
 
        // 윤년에 2월 계산 
        if(this.isLeaf(yyyy) && mm == 2){
            if(dd <= this.WS_DAYS[mm-1+ 1){
                return true;
            }
        }
 
        // 그 외
        if(dd <= this.WS_DAYS[mm-1] ){
            return true;
        }
 
        return false;
    },
    
    /* 윤년 여부 검사 */
    isLeaf : function(yyyy){
        if( yyyy%4==){
            if( yyyy%400==){
                return true;
            }
            if( yyyy%100==){
                return false;
            }
            return true;
        }
        return false
    },
    
};
cs


+ Recent posts