# C Program to Calculate Difference Between Two Time Periods

In this example, you will learn to calculate the difference between two time periods using a user-defined function.

To understand this example, you should have the knowledge of the following C programming topics:

## Calculate Difference Between Two Time Periods

``````#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 start time: \n");
printf("Enter hours, minutes and seconds: ");
scanf("%d %d %d", &startTime.hours, &startTime.minutes, &startTime.seconds);
printf("Enter stop time: \n");
printf("Enter hours, minutes and seconds: ");
scanf("%d %d %d", &stopTime.hours, &stopTime.minutes, &stopTime.seconds);

// Difference between the start and stop time period.
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;
}

void differenceBetweenTimePeriod(struct TIME start, struct TIME stop, struct TIME *diff) {
if (stop.seconds > start.seconds) {
--start.minutes;
start.seconds += 60;
}
diff->seconds = start.seconds - stop.seconds;
if (stop.minutes > start.minutes) {
--start.hours;
start.minutes += 60;
}
diff->minutes = start.minutes - stop.minutes;
diff->hours = start.hours - stop.hours;
}
``````

Output

```Enter start time:
Enter hours, minutes and seconds: 12
34
55
Enter stop time:
Enter hours, minutes and seconds: 8
12
15

TIME DIFFERENCE: 12:34:55 - 8:12:15 = 4:22:40
```

In this program, the user is asked to enter two time periods and these two periods are stored in structure variables startTime and stopTime respectively.

Then, the function `differenceBetweenTimePeriod()` calculates the difference between the time periods. The result is displayed from the `main()` function without returning it (using call by reference technique).