思路:2001年1月22日是星期天,计算输入日期距离1.22的天数%7的结果就是星期几
#include<iostream>
using namespace std;
int monthdays[13] = {-1,31,28,31,30,31,30,31,31,30,30,31};
int main() {
int year,month,date;
int days = 0; //记录从2001年12月22日(星期日)过了多少天
cin >> year >> month >> date;
for(int i=2001;i<year;i++) { //计算相隔年份
if(year%4==0 && year%100!=0 || year%400==0) { //闰年
days += 366;
}
else {
days += 365;
}
}
if(year%4==0 && year%100!=0 || year%400==0) { //闰年2月份天数变为29
monthdays[2] = 29;
}
for(int m=1;m<month;m++) {
days += monthdays[m];
}
days += date;
days -= 22;
cout <<"星期"<< days%7 << endl;
return 0;
}