C++程序编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如 输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005 年 1 月 1 日 0 时 0 分 0 秒。
时间: 2023-07-14 09:14:15 浏览: 185
以下是一个简单的 C++ 函数,可以实现输入年月日时分秒,输出该年月日时分秒的下一秒的功能。
```c++
#include <iostream>
#include <ctime>
using namespace std;
void nextSecond(int &year, int &month, int &day, int &hour, int &minute, int &second) {
time_t rawtime;
struct tm * timeinfo;
// 将输入的时间转换为 tm 结构体
time(&rawtime);
timeinfo = localtime(&rawtime);
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
timeinfo->tm_hour = hour;
timeinfo->tm_min = minute;
timeinfo->tm_sec = second;
// 调用 mktime 函数转换为时间戳
rawtime = mktime(timeinfo);
// 时间戳加 1 秒
rawtime += 1;
// 将时间戳转换为 tm 结构体
timeinfo = localtime(&rawtime);
// 将年月日时分秒赋值给对应的变量
year = timeinfo->tm_year + 1900;
month = timeinfo->tm_mon + 1;
day = timeinfo->tm_mday;
hour = timeinfo->tm_hour;
minute = timeinfo->tm_min;
second = timeinfo->tm_sec;
}
int main() {
int year, month, day, hour, minute, second;
cout << "请输入年月日时分秒,以空格分隔:" << endl;
cin >> year >> month >> day >> hour >> minute >> second;
nextSecond(year, month, day, hour, minute, second);
cout << "下一秒的时间是:" << year << "年" << month << "月" << day << "日" << hour << "时" << minute << "分" << second << "秒" << endl;
return 0;
}
```
该程序中使用了 C++ 标准库中的 time 函数和 tm 结构体,通过将输入的年月日时分秒转换为 tm 结构体,再将其转换为时间戳,加上 1 秒后再转换回 tm 结构体,最后将年月日时分秒赋值给对应的变量,实现了输出该年月日时分秒的下一秒的功能。
阅读全文