在C++里面,根据输入的年月日,输出该天为星期几
时间: 2024-10-05 10:02:37 浏览: 42
在C++中,你可以利用`<chrono>`库来计算给定日期对应的星期。下面是一个简单的示例,展示了如何通过`std::chrono::days`和`std::chrono::weekday`来实现这个功能:
```cpp
#include <iostream>
#include <chrono>
#include <ctime>
// 将日期转换为时间点
std::chrono::day_of_week get_weekday(int year, int month, int day) {
// 使用C++标准库的time_t类型表示日期
time_t timestamp = std::mktime(std::tm{
.year = year, // 年份
.month = month - 1, // 月份从0开始计数
.mday = day, // 日
.wday = 0, // 默认第一天为周日
.yday = 0, // 年内的第几天
.hour = 0,
.minute = 0,
.second = 0,
.weekday = 0,
. tm_isdst = -1 // 不处理夏令时
});
// 获取星期几,范围是0到6,分别代表周一到周日
return std::chrono::weekday(timestamp);
}
int main() {
int year, month, day;
std::cout << "请输入年月日(格式:YYYY MM DD):" << std::endl;
std::cin >> year >> month >> day;
std::chrono::day_of_week weekday = get_weekday(year, month, day);
switch (weekday) {
case std::chrono::monday:
std::cout << "星期一" << std::endl;
break;
case std::chrono::tuesday:
std::cout << "星期二" << std::endl;
break;
// ... 其他case添加剩余的天
default:
std::cout << "未知日期" << std::endl;
}
return 0;
}
```
阅读全文