C语言计算旅程时间,输入time1和time2(有效范围为0000到2359,不考虑出发时间晚于到达时间的情况)
时间: 2024-09-25 17:07:05 浏览: 28
在C语言中,我们可以编写一段简单的程序来计算两个给定时间之间的旅程时间。首先,我们需要确保时间2大于时间1,并将它们转换为小时和分钟的形式进行相减。这里是一个基本的示例:
```c
#include <stdio.h>
#include <string.h>
#define MINUTES_IN_HOUR 60
void calculate_travel_time(char time1[6], char time2[6]) {
int hour1 = (time1[0] - '0') * 10 + (time1[1] - '0');
int minute1 = (time1[3] - '0') * 10 + (time1[4] - '0');
int hour2 = (time2[0] - '0') * 10 + (time2[1] - '0');
int minute2 = (time2[3] - '0') * 10 + (time2[4] - '0');
// 检查输入的有效性并调整顺序
if (hour1 > hour2 || (hour1 == hour2 && minute1 >= minute2)) {
int temp = hour1;
hour1 = hour2;
hour2 = temp;
temp = minute1;
minute1 = minute2;
minute2 = temp;
}
// 计算旅行时间(小时)
int travel_hours = hour2 - hour1;
// 如果超过了一整天,减去24小时
if (travel_hours < 0) {
travel_hours += 24;
}
// 计算剩余分钟(如果不足一小时)
int travel_minutes = minute2 - minute1;
if (travel_minutes < 0) {
travel_minutes += MINUTES_IN_HOUR;
travel_hours--;
}
printf("旅程时间为 %d 小时 %02d 分钟\n", travel_hours, travel_minutes);
}
int main() {
char time1[] = "1800";
char time2[] = "1330";
calculate_travel_time(time1, time2);
return 0;
}
```
在这个程序中,我们首先从字符串中提取小时和分钟,然后比较两个时间。如果需要,我们会交换它们的位置以保证时间2总是在时间1之后。接着,我们计算小时差,如果超过一天,则减去24小时;同时计算剩余的分钟。最后,打印出旅行的具体时间。
阅读全文