int check(int year,int month,int day){
    if(month==1||month==2){
        month+=12;
        year--;
    }
    int c=year/100;
    int y=year%100;
    int m=month;
    int d=day;
    int W=c/4-2*c+y+y/4+26*(m+1)/10+d-1;
    if(W<0) return (W+(-W/7+1)*7)%7;
    return W%7;
}// 0代表周日,1~6分别代表周一~周六

记录一个模板,好用。适用于1582年后的事情。百度百科