//요구사항 // 월을 입력받아서 해당월의 마지막일을 출력 // [입력] 월 : 5 // [출력] 5월은 31일까지입니다.
// [조건] 2월은 28일로 // [추가] 년도 + 월 -> 윤년처리
import java.io.*;
class Ex44_Test16_monthday
{
public static void main(String[] args) throws IOException
{
// 숫자가 아닌 입력값에 대한 예외처리 없음.
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("년도를 입력 : ");
int year = Integer.parseInt(reader.readLine());
System.out.print("월을 입력 : ");
int month = Integer.parseInt(reader.readLine());
// 윤년인지 평년인지 검사
String result = (year % 4 == 0) ?
((year%100==0) ?
((year%400==0) ?
"윤년" : "평년") : "윤년") : "평년";
int day=0; //마지막일
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31; // 31일까지 있는 달
break;
case 4:
case 6:
case 9:
case 11:
day = 30; // 30일까지 있는 달
break;
case 2: // 평년 2월은 28일, 윤년은 29일
day = result.equals("평년") ? 28 : 29;
break;
default : // 1~12월의 유효성검사
System.out.println("1~12 사이의 월을 입력하세요.");
}
// 결과 출력
System.out.printf("%d년은 %s입니다.%n", year, result);
System.out.printf("%d년 %d월은 %d까지입니다.%n", year, month, day);
}
}