취미처럼

[Javascript] Date 본문

JavaScript/이론

[Javascript] Date

sirius 2021. 3. 18. 10:18
메서드  설명 
getDate()  로컬 시간을 사용하여 일(월 기준) 반환 
getDay()  로컬 시간을 사용하여 일(주 기준, 즉 요일)을 반환 
getFullYear()  로컬 시간을 사용하여 연도를 반환 
getHours()  로컬 시간을 사용하여 시간을 반환 
getMilliseconds()   로컬 시간을 사용하여 밀리초를 반환
getMinutes()  로컬 시간을 사용하여 분을 반환 
getMonth()  로컬 시간을 사용하여 월을 반환 
getSeconds()  로컬 시간을 사용하여 초를 반환 
getTime()  1970년 1월 1일 00:00:00부터 현재시간 까지 경과한 시간을 밀리초로 반환  
getYear() 로컬 시간을 사용하여 연도 값을 반환. getFullYear() 사용을 권장
setDate()  로컬 시간을 사용하여 일(월 기준)을 설정 
setFullYear()  로컬 시간을 사용하여 연도를 설정 
setHours()  로컬 시간을 사용하여 시간을 설정
setMilliseconds() 로컬 시간을 사용하여 밀리초를 설정
setMinutes()  로컬 시간을 사용하여 분을 설정 
setMonth()  로컬 시간을 사용하여 월을 설정 
setSeconds()  로컬 시간을 사용하여 초를 설정 
setTime()  날짜와 시간 값을 설정 
setYear()  로컬시간을 사용하여 연도 값을 설정. setFullYear() 사용을 권장 

 

/*
 * 요일은 0 ~ 6, 일요일 : 0, 토요일 : 6 
 * 달은 0 ~ 11, 1월 : 0, 12월 : 11
 */
 
var calendarUtil = function(date) {
    /**
     * 기본적인 셋팅
     * 월별 마지막 날짜
     * 윤년을 구해 윤년일 경우 2월의 마지막 달을 29로 변경
     */
    
    /** 
     * 개발 순서
     * 1. 입력된 달의 첫번째 요일을 구한다.
     * 2. 입력된 달의 마지막 일을 구한다.
     * 3. 한달에 몇 주인지 구한다.
     * 4. 달력의 왼쪽 또는 오른쪽을 클릭했을 경우 현재 년 월에 1달을 추가하거나 뺀다.
     */
    if(typeof(date) !== 'undefined')
    {
        date = date.split('/');
        date = new Date(date[0], date[1], 1);
    }
    else
    {
        var date = new Date();
    }
    
    var currentYear = date.getFullYear(); //getYear은 Deprecated 되었다.

    //월별 마지막 날을 입력한다.
    var monthLastArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

    //윤년일 경우 2월의 마지막 달을 29일로 설정한다.
    if(currentYear % 4 == 0 && (currentYear % 100 != 0 || currentYear % 400 == 0)) {
        monthLastArray[1] = 29;
    }
    
    //1. 입력된 달의 첫번째 요일을 구한다.
    date.setDate(1);
    var dayofweek = date.getDay();
    
    //2. 입력된 달의 마지막 일을 구한다.
    var currentMonth = date.getMonth();
    var lastDay = monthLastArray[currentMonth];
    
    //3. 한달이 몇 주인지 구한다.
    var monthWeek = Math.ceil((dayofweek + lastDay) / 7);
    
    //4. 달력의 왼쪽 또는 오른쪽을 클릭했을 경우 현재 년 월에 1달을 추가하거나 뺀다.
    //1달전으로 돌아 갈 경우
    var preDate = "";
    
    if(currentMonth == 0)
        preDate += (currentYear - 1) + "/" + 11 + "/" + 1;
    else
        preDate += currentYear + "/" + (currentMonth - 1) + "/" + 1;
    
    //1달뒤로 갈 경우
    var postDate = "";
    if(currentMonth == 11)
        postDate += (currentYear + 1) + "/" + 0 + "/" + 1;
    else
        postDate += currentYear + "/" + (currentMonth + 1 ) + "/" + 1;

    return {
        "currentYear" : currentYear, 
        "currentMonth" : currentMonth,
        "monthWeek" : monthWeek,
        "dayofweek" : dayofweek,
        "lastDay" : lastDay,
        "preDate" : preDate,
        "postDate" : postDate,
        "preLastDay" : monthLastArray[currentMonth - 1]
    };
}

'JavaScript > 이론' 카테고리의 다른 글

[Javascript] Define Function  (0) 2021.03.18
[Javascript] Array  (0) 2021.03.18
[Javascript] String  (0) 2021.03.18
[Javascript] 타이머 함수  (0) 2021.03.16
[Javascript] Math  (0) 2021.03.16
Comments