c++输入一天的日期,输入第二天的日期
时间: 2024-10-20 19:10:44 浏览: 18
在C++中,你可以通过`std::cin`从用户那里获取当前日期,并基于这个日期来计算第二天的日期。这里有一个简单的例子,使用`<ctime>`库来处理时间:
```cpp
#include <iostream>
#include <ctime>
int main() {
// 获取当前时间
time_t now = time(0);
struct tm* current_time = localtime(&now);
// 提示用户输入今天的日期(假设我们只关心月份、日期和星期几)
std::cout << "请输入今天的日期 (格式:MM/DD): ";
int month, day;
std::cin >> month >> day;
// 将输入转换为`tm`结构
current_time->tm_mday = day; // 设置为今天的日子
current_time->tm_mon = month - 1; // 减一,因为C++的月份是从0开始的
// 计算第二天
current_time->tm_mday++; // 加一得到第二天
if (current_time->tm_mday > days_in_month(current_time->tm_mon + 1, current_time->tm_year)) { // 检查是否超过当月天数
current_time->tm_mday = 1; // 如果超过,设为新的一月第一天
current_time->tm_mon++; // 进入下一月
if (current_time->tm_mon == 13) { // 跨越了12月,进入新的一年
current_time->tm_mon = 0; // 重置为1月
current_time->tm_year++; // 增加年份
}
}
// 将`tm`结构转换回时间戳,并显示第二天的日期
std::cout << "第二天的日期是: " << std::put_time(std::localtime(&now), "%Y-%m-%d") << std::endl;
return 0;
}
// 函数用于获取给定月份和年份的最大天数
int days_in_month(int month, int year) {
static const std::vector<int> days_in_month_data = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
return days_in_month_data[month];
}
```
阅读全文