我写了一个计算闰年的程序。第二部分是如果年份不是闰年,我必须打印下一个闰年的年数。 对于2097年,产量显示3年,直到下一次飞跃,但它应该是7年。我想我在最后一行的代码中犯了一个错误。请帮帮我。 到目前为止,这是我的代码。
public static void main(String[] args) {
// TODO code application logic here
int year = 2093;
if((year%4==0) && year%100!=0){
System.out.println(year + " is a leap year.");
}
else if ((year%4==0) && (year%100==0)&& (year%400==0)) {
System.out.println(year + " is a leap year.");
}
else {
System.out.println(year + " is not a leap year");
System.out.println(4-(year%4) + " years untill next leap year");
}
答案 0 :(得分:1)
您的闰年测定结果是正确的。但是,您正在使用此表达式基于错误的“每4年是闰年”规则来计算下一个闰年:
4-(year%4)
您可以通过以下方式找到下一个闰年:
year
之后的下一年开始。使用您已经编写的相同逻辑来确定它是否是闰年。您会发现将if
逻辑放在一个单独的方法中是有用的,以避免重复代码和逻辑。
答案 1 :(得分:1)
主要代码:
int year = 2093;
if (isLeapYear(year) {
System.out.println(year + " is a leap year");
} else {
int moreYears = nextLeapYear(year) - year;
System.out.println(moreYears + " more years until next leap year");
}
Check if a year is a leap year:
public boolean isLeapYear(int year)
{
if (year % 4 != 0)
return false;
else if (year % 100 != 0)
return true;
else if (year % 400 != 0)
return false;
else
return true;
}
获得下一个闰年:
public int nextLeapYear(int year)
{
while( !isLearpYear(year) )
year++;
return year;
}