计算旅程时间,输入time1和time2(有效范围为0000到2359,不考虑出发时间晚于到达时间的情况),结果如: 请输入time1,time2:7:12 14:11(7:12出发,14:11到) 旅程时间为6小时59分钟c语言
时间: 2024-09-23 21:05:03 浏览: 110
WriteTime摄像头时间修改
在C语言中计算两个时间点之间的旅程时间,可以将输入的时间字符串转换成整数表示小时和分钟,然后相减并处理溢出情况。以下是一个简单的示例函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MINUTE 60
int time_to_minutes(char *time) {
int hour = (time[0] - '0') * 10 + (time[1] - '0');
int minute = (time[3] - '0') * 10 + (time[4] - '0');
return hour * MINUTE + minute;
}
void calculate_trip_time(char *time1, char *time2) {
if (strcmp(time1, "0000") == 0 || strcmp(time2, "0000") == 0) {
printf("请输入有效的非零时间。\n");
return;
}
int t1 = time_to_minutes(time1);
int t2 = time_to_minutes(time2);
if (t1 > t2) {
// 如果第一个时间大于第二个,交换它们
char *temp = time1;
time1 = time2;
time2 = temp;
}
int trip_hours = t2 - t1;
if (trip_hours < 0) {
trip_hours += 24 * MINUTE; // 跨过一天
}
int trip_minutes = trip_hours % MINUTE;
printf("旅程时间为 %d 小时 %02d 分钟\n", trip_hours / MINUTE, trip_minutes);
}
int main() {
char time1[] = "07:12";
char time2[] = "14:11";
calculate_trip_time(time1, time2);
return 0;
}
```
这个程序首先将输入的时间字符串转换为分钟,然后计算差值,并注意处理超过24小时的情况。在`main()`函数中,你可以传入具体的time1和time2来测试。
阅读全文