帮我写一个c语言输入启程与结束时间,自动计算旅程的代码
时间: 2024-09-16 17:04:50 浏览: 11
当然可以。在C语言中,我们可以创建一个简单的程序来获取用户的起始时间和结束时间,并计算两者之间的差值表示旅程时间。这里是一个基础的例子:
```c
#include <stdio.h>
#include <time.h>
// 定义结构体存储日期时间信息
struct datetime {
int hour;
int minute;
};
// 函数用于从用户输入获取日期时间并转换为时间戳
struct datetime getUserInput() {
struct datetime time;
printf("请输入出发时间(小时 分钟): ");
scanf("%d %d", &time.hour, &time.minute);
return time;
}
// 计算两个datetime之间的时间差
long long calculateDuration(struct datetime start, struct datetime end) {
// 获取当前时间作为结束时间
time_t now = time(NULL);
// 转换为时间戳(以秒为单位)
struct tm *start_tm = localtime(&now);
start_tm->tm_hour = start.hour;
start_tm->tm_min = start.minute;
long long start_timestamp = mktime(start_tm);
// 同样处理end_time
struct tm *end_tm = localtime(&now);
end_tm->tm_hour = end.hour;
end_tm->tm_min = end.minute;
long long end_timestamp = mktime(end_tm);
// 返回两个时间戳之差(单位:秒)
return end_timestamp - start_timestamp;
}
int main() {
struct datetime start, end;
start = getUserInput();
printf("请输入到达时间(小时 分钟): ");
scanf("%d %d", &end.hour, &end.minute);
long long duration = calculateDuration(start, end);
printf("旅程持续时间:%lld 秒\n", duration);
printf("旅程持续时间:%ld 分钟 (%ld 小时)\n", duration / 60, duration / (60*60));
return 0;
}
```
这个程序首先定义了一个`datetime`结构体来存储小时和分钟,然后定义了获取用户输入和计算时间差的方法。在`main()`函数中,我们获取用户的出发和到达时间,然后计算并打印出旅程的持续时间。