原文: https://www.programiz.com/c-programming/examples/time-structure
在此示例中,您将学习使用用户定义的函数计算两个时间段之间的差。
要理解此示例,您应该了解以下 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("Enter the start time. \n");printf("Enter hours, minutes and seconds: ");scanf("%d %d %d", &startTime.hours,&startTime.minutes,&startTime.seconds);printf("Enter the stop time. \n");printf("Enter hours, minutes and seconds: ");scanf("%d %d %d", &stopTime.hours,&stopTime.minutes,&stopTime.seconds);// Difference between start and stop timedifferenceBetweenTimePeriod(startTime, stopTime, &diff);printf("\nTime Difference: %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;}// Computes difference between time periodsvoid 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;}
输出
Enter the start time.Enter hours, minutes and seconds: 123455Enter the stop time.Enter hours, minutes and seconds: 81215Time Difference: 12:34:55 - 8:12:15 = 4:22:40
在该程序中,要求用户输入两个时间段,这两个时间段分别存储在结构变量startTime和stopTime中。
然后,函数differenceBetweenTimePeriod()计算时间段之间的差。 结果从main()函数显示而不返回(使用按引用调用技术)。
