1.闰年的计算
1.1闰年计算方式
如果我们需要判断今年是否是一个闰年可以通过两个判断条件来实现。第一个条件是判断今年的年份是否能够被四百整除,如果能够被整除那么今年就是一个闰年,反之就不是闰年。第二个条件是今年的年份能够被四整除并且不能够被一百整除,如果同时满足两个条件那么今年就是一个闰年,但是只要两个条件中的任何一个不满足那么今年就不是一个闰年。只要满足上述任何一个条件都能够判断出该年份是一个闰年。
1.2代码演示
package basic;
/**
* The complex usage of the if statement.
*
* @author Wu Jun 2298320301@qq.com.
*/
public class Day4 {
/**
*********************
* The entrance of the program.
*
* @param args
* Not used now.
*********************
*/
public static void main(String args[]) {
// Test isLeapYear
int tempYear = 2021;
System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT");
} // Of if
System.out.println("a leap year.");
tempYear = 2000;
System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
tempYear = 2100;
System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
tempYear = 2004;
System.out.print("" + tempYear + " is ");
if (!isLeapYear(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
// Test isLeapYearV2
System.out.println("Now use the second version.");
tempYear = 2021;
System.out.print("" + tempYear + " is ");
if (!isLeapYearV2(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
tempYear = 2000;
System.out.print("" + tempYear + " is ");
if (!isLeapYearV2(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
tempYear = 2100;
System.out.print("" + tempYear + " is ");
if (!isLeapYearV2(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
tempYear = 2004;
System.out.print("" + tempYear + " is ");
if (!isLeapYearV2(tempYear)) {
System.out.print("NOT ");
} // Of if
System.out.println("a leap year.");
}
/**
*********************
* Is the given year leap?
*
* @param paraYear
* The given year.
*********************
*/
public static boolean isLeapYear(int paraYear) {
if ((paraYear % 4 == 0) && (paraYear % 100 != 0) || (paraYear % 400 == 0)) {
return true;
} else {
return false;
} // Of if
}// Of isLeapYear
/**
*********************
* Is the given year leap? Replace the complex condition with a number of if.
*
* @param paraYear
* The given year.
*********************
*/
public static boolean isLeapYearV2(int paraYear) {
if (paraYear % 4 != 0) {
return false;
} else if (paraYear % 400 == 0) {
return true;
} else if (paraYear % 100 == 0) {
return false;
} else {
return true;
} // Of if
}// Of isLeapYearV2
}// Of class LeapYear
在上述代码中对闰年的判断采用了两种写法,首先是isLeapYear函数,如果输入值能够被四百整除或者能够被四整除且同时不能被一百整除时,那么函数返回值为true,反之为false。然后是函数isLeapYearV2,这个函数采用了if分支判断的方式,将闰年的判断条件进行拆分。在拆分判断条件时我们需要注意的是年份能够整除四且不能整除一百这两个条件是一个整体需要同时满足,这时候我们可以换一种理解方式将两个条件的“与”关系变换成“或”的关系,如年份不能被四整除或者能被一百整除时那么该年份就不是一个闰年。
1.3运行结果
2.总结
对于闰年的计算没有太大的难度,我们只需要理解到一个年份满足怎样的条件是才能够判定为一个闰年,反之就不是一个闰年。理解清楚判断条件之后我们就需要选择条件语句的判断方式,比如将判断语句作为一个整体来进行判断,或者是拆分成多个分支语句进行判断。只要我们思路清晰了那么判断闰年的问题也就变得简单了。