칼렌더 클래스나 date클래스를 이용하지 않고 특정한 요일을 구하기 위한 소스입니다.
public class Calendar{
public static void main(String args[]){
// 2080년 4월 14일의 요일 구하기
int year = 2080;
int month = 4;
int day = 14;
/* 오늘의 날짜로 테스트.
int year = 2003;
int month = 5;
int day = 12;
*/
if (month == 1 || month == 2) year–;
month = (month + 9) % 12 + 1;
int y = year % 100;
int century = year / 100;
int week = ((13 * month – 1) / 5 + day + y + y/4 + century/4 – 2*century) % 7;
if (week < 0) week = (week + 7) % 7;
String ch_week = “”;
switch(week) {
case 0:
ch_week = “일요일”;
break;
case 1:
ch_week = “월요일”;
break;
case 2:
ch_week = “화요일”;
break;
case 3:
ch_week = “수요일”;
break;
case 4:
ch_week = “목요일”;
break;
case 5:
ch_week = “금요일”;
break;
case 6:
ch_week = “토요일”;
break;
}
System.out.println(ch_week + ” 입니다.”);
} // main
} // class
칼렌더 클레스를 이용한 요일 구하기
public class Cal1{
public static void main(String args[]){
java.util.Calendar c= java.util.Calendar.getInstance();
/*
year – the value used to set the YEAR time field.
month – the value used to set the MONTH time field. Month value is 0-based. e.g., 0 for January.
date – the value used to set the DATE time field.
*/
c.clear();
c.set(2080, 3, 14); // 2080년 4월 14일
String ch_week = “”;
switch(c.get(c.DAY_OF_WEEK)) {
case java.util.Calendar.SUNDAY:
ch_week = “일요일”;
break;
case java.util.Calendar.MONDAY:
ch_week = “월요일”;
break;
case java.util.Calendar.TUESDAY:
ch_week = “화요일”;
break;
case java.util.Calendar.WEDNESDAY:
ch_week = “수요일”;
break;
case java.util.Calendar.THURSDAY:
ch_week = “목요일”;
break;
case java.util.Calendar.FRIDAY:
ch_week = “금요일”;
break;
case java.util.Calendar.SATURDAY:
ch_week = “토요일”;
break;
}
System.out.println(ch_week);
}
}
int week = ((13 * month – 1) / 5 + day + y + y/4 + century/4 – 2*century) % 7;
여기에서 (13 * month – 1) / 5 이부분 좀 설명해주시면 안될까요?
Comment by muik — October 23, 2008 @ 12:25 am