c++根据输入日期输出该天为星期几
时间: 2024-10-11 12:05:33 浏览: 48
在C++中,你可以使用`<ctime>`库来处理日期和时间,并通过`std::chrono`模块来获取当前日期或根据给定日期计算星期几。以下是一个简单的示例,说明如何根据输入的日期(例如`YYYY-MM-DD`格式)计算出对应的星期:
```cpp
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
#include <ctime>
std::string get_weekday_from_date(std::string input_date) {
std::tm date_tm;
std::istringstream(date_input) >> std::get_time(&date_tm, "%Y-%m-%d");
std::time_t t = mktime(&date_tm);
return std::strftime("%A", localtime(&t));
}
int main() {
std::string user_input;
std::cout << "请输入日期 (格式: YYYY-MM-DD): ";
std::getline(std::cin, user_input);
if (user_input.size() != 10 || user_input[4] != '-' || user_input[7] != '-') {
std::cerr << "无效的日期格式! 请确保格式为YYYY-MM-DD.\n";
return 1;
}
std::string weekday = get_weekday_from_date(user_input);
std::cout << "输入的日期 " << user_input << " 对应的星期是: " << weekday << ".\n";
return 0;
}
```
在这个示例中,首先从用户那里获取输入的日期,然后尝试将其转换成`std::tm`结构,最后使用`strftime`函数根据本地时间和格式化字符串 `%A`(代表完整的星期名)返回结果。
阅读全文