我正在尝试将3个条件放入if语句中但是卡住了。 它是一个程序,我需要知道在JOptionPane中输入的年份是否是闰年。要变为“变量iYear中的数字必须可以除以4.它必须可以被100或400中的一个整除。”
我现在拥有的是什么,但即使在闰年,输出也会回来,所以我必须编写错误的代码。
if ((iYear % 4 == 0) && (iYear % 100 == 0) || (iYear % 400 == 0){
blnLeapYear = true;
} else {
blnLeapYear = false;
}
答案 0 :(得分:3)
如果您使用的是Java 8,请使用:
java.time.Year.of(iYear).isLeap()
上述方法的Java实现:
public static boolean isLeap(long year) {
return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
}
答案 1 :(得分:2)
你在这里写的是闰年的错误条件。 它应该是
if ((iYear % 4 == 0) && (iYear % 100 != 0) || (iYear % 400 == 0)
{
blnLeapYear = true;
}
else
{
blnLeapYear = false;
}
闰年是可被4整除但不能100或可被400整除的年份。 因此,100,200,300是非闰年,但400闰年。
答案 2 :(得分:0)
400可分为100 所以 400x 将为x % 100 == 0:
所以,既然你说400或100,我们就可以安全地选择100而忽略400。
在这种情况下, 100可分为4 100x 将为x % 100 == 0
这让我们离开了:
if(iYear % 100 == 0){
...
**编辑