gpt4 book ai didi

计算闰年的Java代码

转载 作者:IT老高 更新时间:2023-10-28 20:54:15 25 4
gpt4 key购买 nike

我正在关注“Java 的艺术与科学”一书,它展示了如何计算闰年。本书使用 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.");
}

}

现在,这就是我计算闰年的方法。

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.");
}
}
}

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

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

最佳答案

正确的实现是:

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;
}
}

关于计算闰年的Java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1021324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com