[JAVA/자바] 년(연)도를 입력 받아 윤년 혹은 평년 구하기 / 입력 받은 년(연)도의 윤년 발생 횟수 구하기(BufferedReader & IF)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class IFStmt {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); // 리더 객체 생성
// 윤년 및 평년 구하는 방법
// 특정 년(Year)을 입력 받아 해당 년이 윤년인지 평년인지 판별
// 1. 윤년은 4년에 한번 발생 (year % 4 == 0)
// 2. 1의 조건을 만족 하는 것 중, 100년 마다 평년 (year % 100 == 0)
// 3. 2의 조건을 만족 하는 것 중, 400년 마다 윤년 (year % 400 == 0)
System.out.print("년 : ");
int year = Integer.parseInt(reader.readLine());
int leapYear_cnt = 0;
// 위의 조건을 토대로 윤년 = [년도를 4로 나눈 나머지가 0] 이면서(and), [년도를 100으로 나눈 것이 0이 아니거나] [400으로 나눈 나머지가 0인 것]
// 기본값 "평년"
String leapYear = "평년";
if(year %4 ==0 && year %100 !=0 || year%400==0) {
leapYear = "윤년";
}
// 해당 년까지 윤년의 발생 횟수 구하기 (윤년 - 평년 + 윤년)
// 2018
leapYear_cnt = (year/4) - (year/100) + (year/400);
System.out.printf("%d년은 %s입니다. (윤년의 갯수 : %d)", year,leapYear,leapYear_cnt);