请帮忙解释一下这句表达式的内容

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:25:27
public class EmployeeDate{
private int day;
private int month;
private int year;

public EmployeeDate(int yy,int mm,int dd){
year=yy;
if(mm>=1&&mm<=12)
month=mm;
else
{month=1;
System.out.println(mm+"月份数据错误");
}
day=checkday(dd);
}
privae int checkday(int dd){
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if (dd>0&&dd<days[month])return dd;
if (month==2&&dd==29&&
(year%400==0||(year%4==0&&year%100!=0)))
}
return dd;
System.out.println(dd+"自然数据错误!预设为1");
return 1;
public String toString(){
return year +"/"+month+"/"+day;
}
}

我想请教一下里面这个条件(year%400==0||(year%4==0&&year%100!=0)
所表达的意思,如果是单单定义闰年的话,那直接用year%4==0就可以了,
为什么还要写那么多呢?小弟我是新手,分数也就只有5分了,还希望高手能指点一下,谢谢!!

举个列子最简单了
假如现在是公元100年
100%400==100

100%4==0
100%100==0
俩个条件都不符合
100不是闰年

如果照你这样分析 100%4==0那就是闰年啊 显然是不一样的 对吧

闰年的定义是如果不是整百年的话,就只需要是4的倍数,如果是整百年的话,就必须是400的倍数。