曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日,如果是星期一则会....
有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日......
1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Weeks {
public static void main(String[] args){
int day = -1;
for(int i=2099;i<5000;){
Calendar gc = new GregorianCalendar(i, 11, 31);
day = gc.get(Calendar.DAY_OF_WEEK);
if(day==1)
System.out.println(i);
i = i+100;
}
}
}
起初忘记了日历 月份从0开始计数,于是在日历上测试怎么都匹配不上,研究过api之后发现12取余了,输入2012 13 31,解析成了2013 1 31.
但是根据错误的分析,比赛时歪打正着也得到了正确答案2299.
有趣的是哪程序测了一下 i跑到了500000000,世纪末的年份的12月31日都没有出现星期一。
经过测试,数据量跑到500000年,发现 周1,周3,周6都不会出现,且周2,周4,周5,周日 出现次数均为1244次。有意思的年份。谁知道是怎么回事呢?