用于计算Le年的Java代码

我正在阅读《 Java的艺术与科学》这本书,它展示了如何计算a年。该书使用了ACM Java Task Force的库。

这是这些书使用的代码:

import acm.program.*;

public class LeapYear extends ConsoleProgram {

public void run()

{

println("This program calculates leap year.");

int year = readInt("Enter the year: ");

boolean isLeapYear = ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0));

if (isLeapYear)

{

println(year + " is a leap year.");

} else

println(year + " is not a leap year.");

}

}

现在,这就是我计算calculated年的方式。

import acm.program.*;

public class LeapYear extends ConsoleProgram {

public void run()

{

println("This program calculates leap year.");

int year = readInt("Enter the year: ");

if ((year % 4 == 0) && year % 100 != 0)

{

println(year + " is a leap year.");

}

else if ((year % 4 == 0) && (year % 100 == 0) && (year % 400 == 0))

{

println(year + " is a leap year.");

}

else

{

println(year + " is not a leap year.");

}

}

}

我的代码有什么问题吗?还是我应该使用本书提供的代码?

编辑::上面的两个代码都工作正常,我想问的是,哪种代码是计算the年的最佳方法。

回答:

正确的实现是:

public static boolean isLeapYear(int year) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

return cal.getActualMaximum(Calendar.DAY_OF_YEAR) > 365;

}

但是,如果您要重新发明轮子,那么:

public static boolean isLeapYear(int year) {

if (year % 4 != 0) {

return false;

} else if (year % 400 == 0) {

return true;

} else if (year % 100 == 0) {

return false;

} else {

return true;

}

}

以上是 用于计算Le年的Java代码 的全部内容, 来源链接: utcz.com/qa/402614.html

回到顶部