输入一个日期,输出那一天是星期几。 目前已知: 1960−01−01为星期五; 2000−01−01为星期六; 2040−01−01为星期日; 2080−01−01为星期一。 c++代码
时间: 2024-09-18 14:17:25 浏览: 39
在C++中,你可以通过计算从公元1年1月1日到给定日期的天数差,并利用模7的运算来确定星期几。这里是一种常见的实现方法,它基于Zeller's Congruence算法:
```cpp
#include <iostream>
using namespace std;
int dayOfWeek(int year, int month, int day) {
if (month < 3) {
month += 12;
year--;
}
int century = year / 100;
int year_of_century = year % 100;
int q = day;
int m = month;
int k = (century * 10 + year_of_century) / 4;
int j = century / 4;
int h = (q + ((13 * (m + 1)) / 5) + k + j - 2);
// 根据模7的结果转换成实际的星期
switch (h % 7) {
case 0: return "星期日"; // 星期日
case 1: return "星期一"; // 星期一
case 2: return "星期二"; // 星期二
case 3: return "星期三"; // 星期三
case 4: return "星期四"; // 星期四
case 5: return "星期五"; // 星期五
case 6: return "星期六"; // 星期六
}
}
int main() {
int year, month, day; // 用户输入日期
cout << "请输入日期(格式:YYYY-MM-DD):";
cin >> year >> month >> day;
string week_day = dayOfWeek(year, month, day);
cout << "那是一年的" << week_day << "." << endl;
return 0;
}
```
用户可以运行这个程序并输入他们想要查询的日期,程序会返回该日期对应的星期。
阅读全文