1949年的国庆节(10月1日)是星期六。今年(2012)的国庆节是星期一。那么,从建国到现在,有几次国庆节正好是星期日呢?
代码:
public class Sunday { public static void main(String[] args) { // TODO Auto-generated method stub int m,j,x,sum,n=0; sum=5; for(m=10;m<=12;m++) { sum+=month(1949,m); } for(int i=1950;i<=2014;i++)//今天是2015年6月4日,所以算到2014年 { for(j=1;j<=12;j++) { sum+=month(i,j); if(j==9) { x=sum%7; if(x+1==7) { System.out.println(i+"年的国庆节是星期日"); n++; } } } } System.out.print("建国到现在,有"+n+"次国庆节正好是星期日"); // return 0; } public static int month(int year,int mouth) { int aws = 0; switch(mouth) { case 1:aws=31;break; case 2:{ if(Run(year)==1) aws=29; else aws=28; }break; case 3:aws=31;break; case 4:aws=30;break; case 5:aws=31;break; case 6:aws=30;break; case 7:aws=31;break; case 8:aws=31;break; case 9:aws=30;break; case 10:aws=31;break; case 11:aws=30;break; case 12:aws=31;break; } return aws; } public static int Run(int year) { if(year%400==0||(year%4==0&&year%100!=0)) return 1; else return 0; } }
运行结果:
1950年的国庆节是星期日
1961年的国庆节是星期日
1967年的国庆节是星期日
1972年的国庆节是星期日
1978年的国庆节是星期日
1989年的国庆节是星期日
1995年的国庆节是星期日
2000年的国庆节是星期日
2006年的国庆节是星期日
建国到现在,有9次国庆节正好是星期日