// 요구사항 // 특정 날짜 입력(년월일)받아서 아래와 같이 출력 // [입력] 년월일 입력(ex> 2012-08-01) : 2012-05-20 // [출력] 입력 날짜가 포함된 주의 일요일은 2012-05-17이고 // 토요일은 2012-05-23입니다.
import java.io.*;
import java.util.*;
class Ex60_Test_calendar
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = getReader();
// 형식에 맞지 않는 입력에 대한 예외처리 없음
System.out.print("년월일 입력(ex> 2012-08-01) : ");
String inputDate = reader.readLine(); // 입력일 얻기
String[] dateArr = inputDate.split("-"); //년,월,일 분할
int year = Integer.parseInt(dateArr[0]); // 입력 년도
int month = Integer.parseInt(dateArr[1]); // 입력 월
int day = Integer.parseInt(dateArr[2]); // 입력 일
Calendar ca = Calendar.getInstance();
//입력일로 세팅
ca.set(year,month-1,day);
//해당년월일의 요일구하기
int date = ca.get(Calendar.DAY_OF_WEEK);
Calendar sun = Calendar.getInstance();
sun.set(year,month-1,day);
sun.add(Calendar.DATE, -(date-1)); // 일요일로 수정
Calendar sat = Calendar.getInstance();
sat.set(year,month-1,day);
sat.add(Calendar.DATE, (7-date)); // 토요일로 수정
// 결과 출력
System.out.printf("입력 날짜가 포함된 주의 일요일은 %tF이고, 토요일은 %tF입니다.%n",sun,sat);
}//end main
public static BufferedReader getReader() {
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
return reader;
}
}