과제
2022.07.05 / Hw1

             키보드를 통해서 연도(ex) 2020)를 입력 받는다.
       이때 입력 받은 연도가 윤년인지 평년인지를 판별하는 
       프로그램을 작성하세요

 

1년 실제론 365.242374일
평년 = 365일 (2월달 - 28일까지)

윤년 = 366일 (2월달 - 29일까지)

소숫점 보정위해 윤년만듬

 

* 윤년의 정의
1. 해당 연도를 4로 나누어 떨어지면 윤년
2. 그 중에서 100으로 나누어 떨어지면 윤년이 아님
3. 그 중에서 400으로 나누어 떨어지면 윤년

 

 

의도

제어문(조건문) 활용

 

 

깃허브

https://github.com/kindacool/Hw/tree/main/HW20220705

 

GitHub - kindacool/Hw

Contribute to kindacool/Hw development by creating an account on GitHub.

github.com

 

 

코드

package p2022_07_05;

import java.util.Scanner;

public class LeapYearHw {

	public static void main(String[] args) {

		System.out.println("연도를 입력하시오");
		Scanner sc = new Scanner(System.in);
		int year = sc.nextInt();
		boolean isLeapYear = false; // true면 윤년, false면 평년

		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
			isLeapYear = true;
		}

		if (isLeapYear == true) {
			System.out.println("윤년 입니다.");
		} else {
			System.out.println("평년 입니다.");
		}
	}

}

 

 

+ 코드 설명

윤년인 경우는 크게 2가지다
1. 4로 나눠지고 100으로 나누어 떨어지지 않는 경우 -> 바로 윤년이다.
2. 4로 나눠지고 100으로 나누어 떨어지는데 400으로 나누어 떨어지는 경우

 -> 400으로 나누어떨어지는 수라면 애초에 4로도 나누어떨어지고 100으로도 나누어 떨어지는 수임.

-> 즉 year % 400 == 0 라고만 쓰면 된다

 

 

출력

+ Recent posts