English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 프로그램에서는 주어진 연도가 윤년인지 확인하는 방법을 배웁니다. if else 문을 사용하여 확인합니다.
윤년은4정확히 나누지만 00으로 끝나는 세기 연은 제외됩니다. 그리고400으로 정확히 나누는 경우, 세기 연은 윤년입니다
public class LeapYear { public static void main(String[] args) { int year = 1900; boolean leap = false; if(year % 4 == 0) { if( year % 100 == 0) { //년은400으로 나누면 윤년입니다 if ( year % 400 == 0) leap = true; else leap = false; } else leap = true; } else leap = false; if(leap) System.out.println(year + " 윤년입니다."); else System.out.println(year + " 윤년이 아닙니다."); } }
이 프로그램을 실행하면, 출력은 다음과 같습니다:
1900으로 변경하면 윤년이 아닙니다.
year의 값을2012시, 출력은 다음과 같습니다:
2012 윤년입니다.
위 프로그램에서, 주어진 연도19000이 변수 year에 저장되어 있습니다.
그렇습니다.19000년은4나누어 떨어지고, 세기 연도(00으로 끝나는)이며, 윤년은4000으로 나누면 그렇습니다.19000으로 나눌 수 없습니다.4000으로 나누면 그렇습니다.19000년은 윤년이 아닙니다.
만약 year를2000으로 나누면 그렇습니다.4나누어 떨어지고, 세기 연도이며, 또한4000으로 나누면 그렇습니다.2000으로 나누면 윤년입니다.
같이, 연도를2012면 그 연도는4나누어 떨어지고, 세기 연도가 아니면, 따라서2012윤년입니다. 더 이상 확인할 필요가 없습니다.2012년이 4로400으로 나누면 정수입니다.