1.要注意的是平年和闰年的判别条件:
(1)平年:365天,2月28天。
(2)闰年:366天,2月29天。
判别条件:根据年份的特殊性分为世纪闰年(2000年)和普通闰年(如1964年)
如果是世纪闰年的话只需要满足条件(年份%400==0),如果是普通闰年的话则要满足条件
(年份%4==0 && 年份%100!=0),所以如果想要准确的判断一个区间内哪些是闰年,需要
写完整条件((年份%400==0)|| ((年份%4==0 && 年份%100)!=0))
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i=1900,j=1,k=1,sum=0,wh;
for(i=1900;i<=9999;i++)
{
j=1;
wh=(i%10+(i/10)%10+(i/100)%10+i/1000);
if(i%400==0 || (i%4==0 && (i%100)!=0))//366
{
for(j=1;j<=12;j++)
{
k=1;
if(j==1 || j==3 || j==5 ||j==7|| j==8 || j==10 || j==12)
{
for(k=1;k<=31;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
else if(j==2)
{
for(k=1;k<=29;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
else
{
for(k=1;k<=30;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
}
}
else
{
for(j=1;j<=12;j++)
{
k=1;
if(j==1 || j==3 || j==5 || j==7 || j==8 || j==10 || j==12)
{
for(k=1;k<=31;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
else if(j==2)
{
for(k=1;k<=28;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
else
{
for(k=1;k<=30;k++)
{
if(wh==(j%10+j/10+k%10+k/10))
sum++;
}
}
}
}
}
System.out.println(sum);
scan.close();
}
}