Board logo

标题: 一道经典的JAVA面试题 [打印本页]

作者: qingqing3721    时间: 2011-8-15 12:27     标题: 一道经典的JAVA面试题

随便给你一个日期(例如2009-8-20),问这一天是否是“星期六”? 问我的时候没什么思路,回来也没太想明白?
算也行. Java code public int getWeek(int dYear,int dMonth,int dDay){ int days=0; int[] months=; if(dYear%400==0||dYear%4==0dYear%100!=0){ months[2]=29; } days=dYear*365+(dYear-1)/4-(dYear-1)/100+(dYear-1)/400; for(int i=1;idMonth;i++){ days+=months; } days+=dDay+6; return (days)%7; }
解释一下:days=dYear*365+(dYear-1)/4-(dYear-1)/100+(dYear-1)/400; 以公元0年为基准,看过了多少年。 1.每一年按365天算。 2.做调整,看经过了多少闰年。按闰年的规律做相应的调整。
dDay+6是因为0年1月1日是星期六。(这个可以不晓得,但可以一个一个试出来,威戈比如你假设是星期日,算出来的结果不对,你调整一下就对了)




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0