基姆拉尔森公式计算日期周几
#include <iostream>
using namespace std;
string week[] ={"Mon","tue","Wen","Thu","Fri","Sat","Sun"};
int main(){
int y,m,d;
while(cin>>y>>m>>d){
if(m<3){
m+=12;
y--;
}
int w = (y+y/4+y/400-y/100+2*m+3*(m+1)/5+d)%7;
cout<<week[w]<<endl;
}
return 0;
}
在公式中d表示日期中的日数,m表示月份数,y表示年数。
注意:在公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。