计算两个时间段的差值
#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 (start.seconds > stop.seconds) {
--stop.minutes;
stop.seconds += 60;
}
diff->seconds = stop.seconds - start.seconds;
while (start.minutes > stop.minutes) {
--stop.hours;
stop.minutes += 60;
}
diff->minutes = stop.minutes - start.minutes;
diff->hours = stop.hours - start.hours;
if(diff->hours < 0){
diff->hours += 24;
}
}
输出
Enter the start time. Enter hours, minutes and seconds: 13 34 55 Enter the stop time. Enter hours, minutes and seconds: 8 12 15 Time Difference: 13:34:55 - 8:12:15 = 18:37:20
在此程序中,将要求用户输入两个时间段,这两个时间段分别存储在结构变量startTime和stopTime中。
然后,函数differenceBetweenTimePeriod()
计算这两个时间段之间的差值。结果由main()
函数显示,而不将其返回(使用传引调用技术)。