用c++求某年某月某日是星期几?
时间: 2024-11-20 16:42:18 浏览: 9
在C++中,可以使用蔡勒(Zeller's)公式来计算某年某月某日是星期几。这是一个相对简单的算法,但需要注意的是,它只适用于格里高利历(公历)。以下是如何在C++中使用蔡勒公式[^2]:
```cpp
#include <iostream>
using namespace std;
int zellers_congruence(int year, int month, int day) {
if (month < 3) {
month += 12;
year--;
}
int century = year / 100;
int year_of_century = year % 100;
int day_of_week = (day + ((13 * (month + 1)) / 5) + year_of_century + (year_of_century / 4) + (century / 4) - (2 * century)) % 7;
return day_of_week; // 返回0代表星期日,1代表星期一,以此类推
}
int main() {
int year, month, day;
cout << "请输入日期(年 月 日): ";
cin >> year >> month >> day;
int result = zellers_congruence(year, month, day);
string days[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
cout << "这一天是: " << days[result] << endl;
return 0;
}
```
这段代码首先读取用户输入的年、月、日,然后调用`zellers_congruence`函数计算该日期对应的星期几。结果会被映射到"星期日"到"星期六"的字符串上。
阅读全文