java code:
public void calculatedates(long y,int m,int d){
if(m==1||m==2){
m+=12;
y-=1;
}
int w=y+y/4-y/100+y/400+3*(m+1)/5+2*m+1+d;//公式
w=w%7;
if(w==0){
w=7;
}
System.out.println(w);
}
今天做了一道计算日期的设计题,感觉比较算出星期几还是比较麻烦,我一般就会考虑计算当前年月和目标年月的天数来Mod%7的余数,来进行比对,百度了下,发现了一个
基姆拉尔森计算公式
在公式中d表示日期中的日数,m表示月份数,y表示年数。
注意:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月;