跳到主要内容

C 编程:计算两个时间段差异的程序

为了理解这个例子,你应该掌握以下 C语言编程 相关主题:

计算两个时间段之间的差异

#include <stdio.h>
struct TIME {
int seconds;
int minutes;
int hours;
};

void differenceBetweenTimePeriod(struct TIME t1,
struct TIME t2,
struct TIME *diff);

int main() {
struct TIME startTime, stopTime, diff;

printf("请输入开始时间。\n");
printf("输入小时、分钟和秒数:");
scanf("%d %d %d", &startTime.hours,
&startTime.minutes,
&startTime.seconds);

printf("请输入结束时间。\n");
printf("输入小时、分钟和秒数:");
scanf("%d %d %d", &stopTime.hours,
&stopTime.minutes,
&stopTime.seconds);

// 开始和停止时间之间的差异
differenceBetweenTimePeriod(startTime, stopTime, &diff);
printf("\n时间差异:%d:%d:%d - ", startTime.hours,
startTime.minutes,
startTime.seconds);
printf("%d:%d:%d ", stopTime.hours,
stopTime.minutes,
stopTime.seconds);
printf("= %d:%d:%d\n", diff.hours,
diff.minutes,
diff.seconds);
return 0;
}

// 计算时间段之间的差异
void differenceBetweenTimePeriod(struct TIME start,
struct TIME stop,
struct TIME *diff) {
while (stop.seconds > start.seconds) {
--start.minutes;
start.seconds += 60;
}
diff->seconds = start.seconds - stop.seconds;
while (stop.minutes > start.minutes) {
--start.hours;
start.minutes += 60;
}
diff->minutes = start.minutes - stop.minutes;
diff->hours = start.hours - stop.hours;
}

输出

请输入开始时间。
输入小时、分钟和秒数:13
34
55
请输入结束时间。
输入小时、分钟和秒数:8
12
15

时间差异:13:34:55 - 8:12:15 = 5:22:40

在这个程序中,用户被要求输入两个时间段,这两个时间段分别存储在结构体变量 startTimestopTime 中。

然后,函数 differenceBetweenTimePeriod() 计算这两个时间段之间的差异。结果从 main() 函数中显示出来,不通过返回它(使用 引用调用 技术)。