蔡勒(Zeller)公式及其推导:快速将任意日期转换为星期数 - faterazer - 博客园 (cnblogs.com)
int year, month, day, week;
cin >> year >> month >> day;
if(month == 1 || month == 2)//蔡勒公式特殊条件 1月与2月当成去年的13月与14月计算
{
month = 12 + y;
year -- ;
}
int left = year / 100; //年份前两位
int right = year % 100; //年份后两位
//年 月 日
int D = (left / 4 + right / 4 - left * 2 + right) + (13 * (month + 1) / 5) + (day - 1);
week = D % 7;