使用C++写一个函数,该函数获取一个时刻(格式为X年X月X日X时X分X秒),返回该时刻距离当前时刻多少秒。
时间: 2023-10-31 11:08:26 浏览: 29
以下是使用C语言编写的函数,可以获取一个时刻并返回该时刻距离当前时刻的秒数:
```c
#include <stdio.h>
#include <time.h>
#include <string.h>
int getSecondsFromNow(char *timeStr) {
struct tm tmTime;
time_t time1, time2;
time(&time1); // 获取当前时间
memset(&tmTime, 0, sizeof(tmTime));
strptime(timeStr, "%Y年%m月%d日%H时%M分%S秒", &tmTime);
time2 = mktime(&tmTime); // 将输入时间转换为time_t类型
return (int)difftime(time2, time1); // 返回两个时间之差
}
int main() {
char timeStr[100];
printf("请输入一个时刻(格式为:YYYY年MM月DD日HH时MM分SS秒):");
scanf("%s", timeStr);
int seconds = getSecondsFromNow(timeStr);
printf("该时刻距离当前时刻 %d 秒\n", seconds);
return 0;
}
```
该函数首先获取当前时间,然后使用`strptime`函数将输入的时间字符串转换为`tm`结构体类型,再使用`mktime`函数将其转换为`time_t`类型,最后使用`difftime`函数计算两个时间之差并返回。在主函数中,用户可以输入一个时刻并调用该函数得到距离当前时刻的秒数。