您的位置:首页 > 职场人生

一道经典的JAVA面试题

2010-07-02 16:35 519 查看
随便给你一个日期(例如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==0&&dYear%100!=0){

months[2]=29;

}

days=dYear*365+(dYear-1)/4-(dYear-1)/100+(dYear-1)/400;

for(int i=1;i days+=months[i];

}

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日是星期六。(这个可以不知道,但可以一个一个试出来,比如你假设是星期日,算出来的结果不对,你调整一下就对了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: