闰年布尔/本月获得天数(28 - 31)

时间:2014-10-09 04:45:26

标签: java boolean

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

public int getDaysInThisMonth()
{ if (month == APRIL || month == JUNE || month == SEPTEMBER || month == NOVEMBER)
        return 30;
  else if (month == FEBRUARY || isLeapYear == false)
        return 28;
       if (isLeapYear == true)
        return 29;
  else return 31;
} 

SEPTEMBER-DECEMBER全部定义为常数1-12,按预期工作。我的问题是我在尝试编译时收到错误代码。

 symbol:   variable isLeapYear
  location: class Date
Date.java:68: error: cannot find symbol
                   if (isLeapYear == true)
                       ^
  symbol:   variable isLeapYear
  location: class Date

2 errors

那么为什么它直接位于它之上时才能找到isLeapYear?我发布的内容之上的所有代码都按预期工作。

2 个答案:

答案 0 :(得分:1)

isLeapYear是一个方法,而不是变量,所以你必须调用它:

 if (isLeapYear(year)) {

由于它需要year参数,你必须弄清楚它的来源。

答案 1 :(得分:0)

因为这个

if (isLeapYear == true)

缺少参数(并且您不需要测试boolean是否等于true),

if (isLeapYear(year)) // <-- is a leap year

if (! isLeapYear(year)) // <-- not a leap year

其中year是传递方法调用的变量或整数文字。