본문 바로가기

IT/java

[java tip] 요일 확인하기 java.util.Calendar 사용

반응형

요일을 확인하기 위한 방법으로 java.util.Calendar 클래스를 사용합니다.

Calendar 클래스로 현재날짜 정보와 날짜에 해당되는 요일정보를 얻어올 수 있습니다.

 

예제1  이번달 1일이 무슨요일인지 확인

 

  String []weeks = {"일","월","화","수","목","금","토"};
  Calendar cc= Calendar.getInstance();

  cc.set(cc.get(Calendar.YEAR)
       ,cc.get(Calendar.MONTH)
       ,1 );
      
  System.out.println(weeks[cc.get(Calendar.DAY_OF_WEEK)-1]); 

 

예제1  설명


  String []weeks = {"일","월","화","수","목","금","토"}; 
  
      Calendar 클래스로 얻어오는 요일 값은 0~6 까지의 값입니다. 순서는 0=일요일, 1=월요일~~~ 6=토요일 이죠..
  
  Calendar cc= Calendar.getInstance();
     
      Calendar 클래스를 사용하기위에서 인스턴스를 생성할때 new Calendar()  이렇게 안하고 위와 같이 합니다.
      그러면 현재날자정보를 가지고 있는 인스턴스를 생성합니다.

    cc.set(cc.get(Calendar.YEAR)
        ,cc.get(Calendar.MONTH)
        ,1 );
       
        Calendar.set(int year, int month, int date  );  을 사용하면 인스턴스가 가지고 있는 날짜값을 변경시킬 수 있습니다.
        cc.get(Calendar.YEAR)  = cc가 가지고 있는 년도값을 리턴
        cc.get(Calendar.YEAR)  = cc가 가지고 있는 월-1 값을  리턴( 1월이면 0을 얻어옵니다)
        cc.get(Calendar.DATE)  = cc가 가지고 있는 일자 값을  리턴
       
        위 코딩에서는 해당월1일의 정보를 얻기위해  set 메소드 의 세번째 일자 파라메터 값에 1을 입력해주었습니다.

  System.out.println(weeks[cc.get(Calendar.DAY_OF_WEEK)-1]);
  
        요일정보를 가져올때는 cc.get(Calendar.DAY_OF_WEEK)  을 이용하면 1~7 까지의 값을 얻어옵니다.
        순서는 1=일요일, 2=월요일~~~ 7=토요일 이죠..

        따라서 요일값에 따라 위에서 선언한 weeks 배열의 0~6번째 값을 얻어온 다음

        ( 여기서 체크할 부분은 배열index는 0부터 시작하고 얻어온 요일갑은 1부터 시작하기 때문에

        얻어온 값에 -1을 해줘야 합니다)

        System.out.println 을 이용해 콘솔창에 출력을 해주게 됩니다.


        
        
       
예제2 특정일자의 요일 확인

 

  String []weeks2 = {"일","월","화","수","목","금","토"};
  String someday = "20121118"; //특정일자
  Calendar c2= Calendar.getInstance();
  

  c2.set(Integer.parseInt(someday.substring(0,4))
        ,Integer.parseInt(someday.substring(4,6))-1
        ,Integer.parseInt(someday.substring(6,8)) );
  
  System.out.println(weeks2[c2.get(Calendar.DAY_OF_WEEK)-1]);   

 

 

    예제1 과 설명은 동일합니다.
   
    특정일자 가 위와같이 년도월일을 모두 포함한 문자일 경우
    Calendar.set메소드 에서 필요한  int 형태의 년,월,일 파라메터를 맞줘주기 위해
    필요한 문자열부분을 추출하는 substring(int beginIndex, int endIndex) 와
    String 타입을 int 타입으로 형변환 하기위해 Integer.parseInt(String val) 메소드를 사용했습니다.
 

반응형