C语言中时间相加如何做到多样例输入和输出?
时间: 2024-09-21 12:10:53 浏览: 28
在C语言中,处理时间相加并支持多样例输入和输出通常涉及到使用`time_t`数据类型以及`difftime()`函数。下面是一个基本的示例,展示了如何接受用户输入两个时间点,然后计算并输出它们之间的差值:
```c
#include <stdio.h>
#include <time.h>
// 函数声明,用于获取当前时间和整数时间间隔
time_t get_time();
void print_time(time_t time_diff);
int main() {
// 获取第一个时间点
printf("请输入第一个时间戳(例如:1500000000): ");
long int input1;
scanf("%ld", &input1);
time_t t1 = input1; // 如果需要精确到秒,可以转换为struct tm
// 获取第二个时间点
printf("请输入第二个时间戳(同上): ");
long int input2;
scanf("%ld", &input2);
time_t t2 = input2;
// 计算时间差
time_t time_diff = difftime(t2, t1);
// 输出结果
print_time(time_diff);
return 0;
}
// 定义辅助函数,将秒数转换为易读的时间形式打印出来
time_t get_time() {
struct tm *now = localtime(NULL);
printf("%d-%02d-%02d %02d:%02d:%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday,
now->tm_hour, now->tm_min, now->tm_sec);
return time(NULL); // 返回当前时间,便于后续计算
}
void print_time(time_t time_diff) {
if (time_diff >= 0) {
struct tm* result = localtime(&time_diff);
printf("两个时间相隔 %d 秒.\n", (int)result->tm_sec);
} else {
printf("时间错误或第一个时间点大于第二个。\n");
}
}
```