public static void main(String[] args) {
// 달력 객체 생성하여 cal에 저장, SimpleDateFormat객체 생성하여 df에 저장
Calendar cal = Calendar.getInstance();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //⭐MM이 달이고 mm이 분이다. 헷갈리지 말자!
//⭐ month는 0부터 배열이 시작한다.
cal.set(2010, 0, 10); //❓캘린더 객체의 날짜 정보를 세팅
Date date = new Date(cal.getTimeInMillis()); //💡cal.getTimeInMillis()를 통해 Calendar를 Date 클래스로 변환해야함. DateFormat 클래스를 사용하기 위해서!
//💡
final String[] dayOfWeek = {"", "일", "월", "화", "수", "목", "금", "토"};
System.out.println(df.format(date) +
//❓이상한 값 출력
"은 " + cal.get(Calendar.WEEK_OF_MONTH)+"번째 " //❓
+ dayOfWeek[cal.get(Calendar.DAY_OF_WEEK)] +"요일입니다.");
}
❓❓해당 값에서
cal.set(2010, 0, 10); //❓캘린더 객체의 날짜 정보를 세팅
을 했음에도 불구하고,
cal.get(Calendar.WEEK_OF_MONTH)+"번째 " //❓
여기서 3이라는 값이 출력된다. 2010년 1월 10일은 사실 2째주 이므로, 값 출력이 잘못 되었다. 이유가 무엇일까?
WEEK_OF_MONTH
는 날짜를 기준으로 몇 주차인지 알려주는 멤버이다.DAY_OF_WEEK_IN_MONTH
가 '몇 번째 요일'인지 그 정보를 담고있다.