隨便給你一個日期(例如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<dMonth;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.做調(diào)整,看經(jīng)過了多少閏年。按閏年的規(guī)律做相應(yīng)的調(diào)整。
dDay+6是因為0年1月1日是星期六。(這個可以不知道,但可以一個一個試出來,比如你假設(shè)是星期日,算出來的結(jié)果不對,你調(diào)整一下就對了)