用C++写一个程序,判断输入的日期y-m-d是星期几。
时间: 2024-10-01 13:03:23 浏览: 34
在C++中,我们可以使用`<ctime>`库来实现这个功能。以下是一个简单的示例程序,它会接收用户输入的年月日,然后计算出对应的星期几:
```cpp
#include <iostream>
#include <ctime>
std::string getDayOfWeek(int year, int month, int day) {
std::tm date = {0};
date.tm_year = year - 1900; // 转换为自公元1900年以来的年份
date.tm_mon = month - 1;
date.tm_mday = day;
time_t t = mktime(&date);
if (t == -1) {
return "Invalid date"; // 如果日期无效,则返回错误信息
}
std::string days[] = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};
return days[std::localtime(&t)->tm_wday];
}
int main() {
int y, m, d;
std::cout << "Enter the date in format (YYYY-MM-DD): ";
std::cin >> y >> m >> d;
if (m < 1 || m > 12 || d < 1 || d > 31) {
std::cout << "Invalid date.\n";
return 0;
}
std::string weekday = getDayOfWeek(y, m, d);
std::cout << "The date is a " << weekday << ".\n";
return 0;
}
```
在这个程序中,我们首先创建了一个`std::tm`结构体,然后填充了日期和月份。接着,我们使用`mktime`函数将此时间戳转换为UTC格式,并获取星期几的信息。最后,程序会输出对应的日子。
阅读全文