💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# C 程序:计算两个时间段之间的差异 > 原文: [https://www.programiz.com/c-programming/examples/time-structure](https://www.programiz.com/c-programming/examples/time-structure) #### 在此示例中,您将学习使用用户定义的函数计算两个时间段之间的差。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C 用户定义的函数](/c-programming/c-user-defined-functions) * [C 结构](/c-programming/c-structures) * [C 结构和函数](/c-programming/c-structure-function) * [C 结构和指针](/c-programming/c-structures-pointers) * * * ## 计算两个时间段之间的差异 ```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 time differenceBetweenTimePeriod(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 periods 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; } ``` **输出** ```c Enter the start time. Enter hours, minutes and seconds: 12 34 55 Enter the stop time. Enter hours, minutes and seconds: 8 12 15 Time Difference: 12:34:55 - 8:12:15 = 4:22:40 ``` * * * 在该程序中,要求用户输入两个时间段,这两个时间段分别存储在结构变量`startTime`和`stopTime`中。 然后,函数`differenceBetweenTimePeriod()`计算时间段之间的差。 结果从`main()`函数显示而不返回(使用**按引用调用**技术)。