上面那个代码用C++写】
时间: 2024-11-06 10:23:54 浏览: 9
在C++中,处理日期同样可以借助`<chrono>`库和`<ctime>`库。以下是一个简单的版本,用于计算给定日期前一天和后一天:
```cpp
#include <iostream>
#include <chrono>
int main() {
int y, m, d;
std::cout << "请输入年份: ";
std::cin >> y;
std::cout << "请输入月份: ";
std::cin >> m;
std::cout << "请输入日期: ";
std::cin >> d;
// 检查输入的有效性
if (y >= 1000 && y <= 3000 && m >= 1 && m <= 12) {
// 使用std::chrono::days进行日期的加减
auto date = std::chrono::day_of_year(std::chrono::January(1, y)) + (m - 1) * 30 + d; // 计算指定日期
auto calendar = std::chrono::system_clock::now().time_since_epoch(); // 获取当前时间
// 计算前一天
auto prev_date = calendar - std::chrono::days(date);
std::time_t prev_time = std::chrono::system_clock::to_time_t(prev_date);
std::cout << std::ctime(&prev_time) << '\n';
// 计算后一天
auto next_date = calendar + std::chrono::days(1);
prev_date = std::chrono::system_clock::to_time_t(next_date);
std::cout << std::ctime(&prev_time) << '\n';
} else {
std::cerr << "输入的日期无效!" << std::endl;
}
return 0;
}
```
这段代码首先从用户那里读取年月日,然后通过`std::chrono::day_of_year`计算指定日期。接着,它创建了一个`std::chrono::system_clock`的时间点,并从中减去或加上一天来得到前一天和后一天。最后,将时间点转换回`std::time_t`格式并输出。
请注意,在实际应用中,你需要自行添加错误检查和异常处理来确保输入的合法性,这里为了简洁起见只做了基本的检查。
阅读全文