基姆拉尔森公式--计算日期周几

基姆拉尔森公式计算日期周几

#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来代入公式计算。

原文地址:https://www.cnblogs.com/kimsimple/p/7351083.html