已知2022年10月11日是星期二
现在给定你一个日期,你需要计算当天是星期几。
输入格式:
一行三个整数M,D,Y,表示所求日期为:M月D日,Y年
1600≤Y≤2400,保证输入日期均为合法日期。
输出格式:
输出一个数字,表示当前是星期几。
如果星期天,则输出0。
输入样例1:
8 17 1926
输出样例1:
2
输入样例2:
2 29 1904
输出样例2:
1
解决方法:
#include <iostream>
using namespace std;
int Date(int y, int m, int d)
{
int week;
if (m == 1 || m == 2) //将1月和2月算到上一年的13,14月
{
m += 12;
y--;
} //这里是大佬给的求日期公式
week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400 + 1) % 7;
return week;
}
int main()
{
int y, m, d;
cin >> m >> d >> y;
cout << Date(y, m, d) << endl;
return 0;
}
这题当时想了很久没想出来,只能用大佬给的公式(o(╥﹏╥)o)