프로그래밍 언어/Java

[JAVA] Calendar class 사용해서 날짜 가져오기

반응형
package bitcamp3.day04;

import java.util.*;

public class Calendar1 {
   public static void main(String[] args) {
      /*
       * Calendar : 날씨, 시간 -> 일정관리
       * Date : 
       */
      
      //Calendar cal = new GregorianCalendar();
      
      Calendar cal = Calendar.getInstance();
      
      //오늘 날짜 취득(getter)
      int year = cal.get(Calendar.YEAR);
      int month = cal.get(Calendar.MONTH);
      int day = cal.get(Calendar.DATE);
      
      System.out.println(year + "년" + month + "월" + day + "일");
      
      //cal.set(Calendar.YEAR, 2021);
      //cal.set(Calendar.MONTH, 5);
      //cal.set(Calendar.DATE, 8);     --> 아래에서 SWITCH문 출력시 SET한 날짜로 나와서 주석
      
      year = cal.get(Calendar.YEAR);
      month = cal.get(Calendar.MONTH);
      day = cal.get(Calendar.DATE);
      
      System.out.println(year + "년" + month + "월" + day + "일");
      
      // 오전/오후
      String ampm = cal.get(Calendar.AM_PM)==0? "오전" : "오후";
      //                        (조건)?"true":"false"
                              //원래는 int형 return 오전 0, 오후 1
      System.out.println(ampm);
      
      //요일 1(일) ~ 7(토)
      int weekday = cal.get(Calendar.DAY_OF_WEEK);
      switch(weekday) {
      case 1:
         System.out.println("일요일");
         break;
      case 2:
         System.out.println("월요일");
         break;
      case 3:
         System.out.println("화요일");
         break;
      case 4:
         System.out.println("수요일");
         break;
      case 5:
         System.out.println("목요일");
         break;
      case 6:
         System.out.println("금요일");
         break;
      case 7:
         System.out.println("토요일");
         break;
      }
      
      int lastday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
      System.out.println("이번달의 마지막 날:"+lastday);
      
      int lastday2 = cal.getActualMinimum(Calendar.HOUR_OF_DAY);
      System.out.println(lastday2);
      
      
   }

}

Calender 객체를 사용하기 위해서 Calendar.getInstance(); 를 사용합니다.

1) 오늘 날짜 얻기
cal.get(Calendar.?)을 이용해서 현재 YEAR, MONTH, DATE를 int형으로 반환받을 수 있습니다.

2) 원하는 날짜 설정
cal.set(Calendar.MONTH, 5-1)을 이용해서 YEAR, MONTH, DATE를 직접 설정할 수 있습니다.
여기서 주의할점은 MONTH의 경우 0~11입니다. (즉, 0일 경우 1월) 이기 때문에 내가 원하는 값이 5월이면 6 - 1을 통해서 설정하는 것을 권장합니다.

3) AM_PM
String ampm = cal.get(Calendar.AM_PM)==0? "오전" : "오후";
cal.get(Calendar.DAY_OF_WEEK)을 이용하며, AM_PM의 값을 얻어옵니다. 
반환 값은 int형이며 AM = 0, PM = 1 값을 반환합니다.

4) 요일 얻기
cal.get(Calendar.DAY_OF_WEEK)
int형으로 반환되며, 1(일) ~ 7(토)입니다.
4인 경우 수요일이겠죠?

5) 이번 달의 마지막 날 찾기
cal.getActualMaximum(Calendar.DAY_OF_MONTH) 를 통해서 이번 달의 마지막 날을 int형 정수로 반환받을 수 있습니다.

 

 

반응형