蓝桥杯2013Java组省赛(世界末日)

//曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
//还有人称今后的某个世纪末的12月31日,如果是星期一则会…
//有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
//于是,“谣言制造商”又修改为星期日…
//1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
//请回答该年份(只写这个4位整数,不要写12月31等多余信息)

public class lanqiao2013_1 {
	public static void main(String[] args) {
		int year = 1999;
		int week = 7;
		int sum = 0;
		for(int i=0;i<10000;i++){
			year = year + 1;
			if((year%4==0&&year%100!=0)||year%400==0){//能被四整除不能被一百整除和能被四百整楚的都是闰年 366天 多一天
			sum = sum +366;
			}else{
			sum = sum +365;
			}
			if(i==0){
			sum = (sum+5) % week;//第一次获得这一年最后的星期
			}
			else{
			sum = sum % week;//最后一天的星期
			}
			if(sum==0&&year%100==99){
				System.out.println("最近的一个星期天"+year);
				break;
			}
	}
	}
}

能被四整除不能被一百整除和能被四百整楚的都是闰年 366天 多一天

你可能感兴趣的:(算法)