隨便給你一個(gè)日期(例如2009-8-20),問(wèn)這一天是否是“星期六”?
問(wèn)我的時(shí)候沒(méi)什么思路,回來(lái)也沒(méi)太想明白?
算也行.
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年為基準(zhǔn),看過(guò)了多少年。
1.每一年按365天算。
2.做調(diào)整,看經(jīng)過(guò)了多少閏年。按閏年的規(guī)律做相應(yīng)的調(diào)整。
dDay+6是因?yàn)?年1月1日是星期六。(這個(gè)可以不知道,但可以一個(gè)一個(gè)試出來(lái),比如你假設(shè)是星期日,算出來(lái)的結(jié)果不對(duì),你調(diào)整一下就對(duì)了)