요일을 확인하기 위한 방법으로 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) 메소드를 사용했습니다.