자바에는 달력을 구현할 수 있도록 다양한 매서드를 제공합니다. 기본적인 작성은 다음과 같습니다. 

// ex.1)
import java.util.Calendar;
 
public class Ex01 {
 
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
         
        // 현재 일
        System.out.println(cal.get(Calendar.DATE) + "일");
         
        // 현재 월
        // 바로 출력하려면 + 1를 해줍니다. 월은 0 부터 시작
        System.out.println((cal.get(Calendar.MONTH) + 1) + "월" );
         
        // 올해 년도
        System.out.println(cal.get(Calendar.YEAR) + "년");
         
        // 현재 시간
        System.out.println(cal.get(Calendar.HOUR_OF_DAY) + "시");
         
        // 현재 분
        System.out.println(cal.get(Calendar.MINUTE) + "분");
         
        // 현재 초
        System.out.println(cal.get(Calendar.SECOND) + "초");
         
        // 1월 1일 부터 오늘까지 흐른 일 수 
        System.out.println(cal.get(Calendar.DAY_OF_YEAR) + "일이 흘렀습니다.");
         
        // 현재 월의 마지막 날짜 
        // 2018년 4월 마지막 날은 30일입니다.
        System.out.println(cal.getActualMaximum(Calendar.DATE));
         
        // 월의 시작 요일
        // 2018년 4월 시작 요일은 일요일입니다.
        // 일 월 화 수 목 금 토 순으로
        System.out.println(cal.get(Calendar.DAY_OF_WEEK));  
    }
}


아래는 결과 화면입니다.


다음은 원하는 년월일로 변경하는 예제입니다.

// ex.2)
import java.util.Calendar;
 
public class Ex01 {
 
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
          
        cal.set(2018, 5, 22);
         
        // 일
        System.out.println(cal.get(Calendar.DATE) + "일");
                 
        // 월
        System.out.println(cal.get(Calendar.MONTH) + "월" );
                 
        // 년
        System.out.println(cal.get(Calendar.YEAR) + "년");
    }
}

 

// ex.3)
import java.util.Calendar;
 
public class Ex01 {
 
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
          
        // 2011년 11월 25일 12시 42분 35초로 셋팅합니다.
        cal.set(Calendar.YEAR, 2011);
        cal.set(Calendar.MONTH, 11);
        cal.set(Calendar.DATE, 25);
        cal.set(Calendar.HOUR_OF_DAY, 12);
        cal.set(Calendar.MINUTE, 42);
        cal.set(Calendar.SECOND, 35);
         
        // 일
        System.out.println(cal.get(Calendar.DATE) + "일");
                 
        // 월
        System.out.println(cal.get(Calendar.MONTH) + "월" );
                 
        // 년
        System.out.println(cal.get(Calendar.YEAR) + "년");
    }
}


이제 달력을 만들어 보겠습니다. 

// ex.4)
import java.util.Calendar;
 
public class Ex01 {
 
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
         
        // 2018년 05월 22일의 달력을 출력합니다.
        cal.set(2018,04,22);
        // 일
        System.out.print(cal.get(Calendar.DATE) + "일 ");
                 
        // 월
        System.out.print((cal.get(Calendar.MONTH)+1) + "월 " );
                 
        // 년
        System.out.println(cal.get(Calendar.YEAR) + "년");
         
         
        System.out.println("일\t월\t화\t수\t목\t금\t토");
         
        int cnt = 0;
        int start_day = cal.get(Calendar.DAY_OF_WEEK);
        int last_day = cal.getActualMaximum(Calendar.DATE);
        for (int i = 1; i < start_day; i++) {
            System.out.print("\t");
            cnt++;
        }
        for (int i = 1; i <= last_day; i++) {
            if(cnt % 7 == 0)
            {
                System.out.println();
            }
            cnt++;
            System.out.print(i + "\t");
        }
    }
}


아래는 결과 화면입니다.


다음은 또다른 방법으로 날짜를 셋팅하는 방법입니다.

// ex.5)
import java.util.Calendar;
 
public class Ex01 {
 
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
         
        // 오늘은 2018년 4월 22일 입니다.
        cal.add(Calendar.DATE, 5);
        System.out.println("5일 후의 날짜는 " + cal.get(Calendar.DATE));
         
        cal.add(Calendar.MONTH, 2);
        System.out.println("2개월 후의 날짜는 " + (cal.get(Calendar.MONTH)+1));
         
        cal.add(Calendar.MONTH, -3);
        System.out.println("3개월 전의 날짜는 " + (cal.get(Calendar.MONTH)+1));
    }
}


아래는 결과 화면입니다.


0 댓글