C Program to Find Difference Between Two Time Periods
This C program illustrates how to subtract two time periods having hours, minutes and seconds (hh:mm:ss) format using structure.
C Program to Find Time Difference
#include<stdio.h>
struct time
{
int hours;
int minutes;
int seconds;
};
int main()
{
/* Creating structure variables */
struct time start, stop, diff;
/* Reading first time period */
printf("Enter hours, minutes and seconds of start time: ");
scanf("%d%d%d", &start.hours,&start.minutes, &start.seconds);
/* Reading second time period */
printf("Enter hours, minutes and seconds of stop time: ");
scanf("%d%d%d", &stop.hours,&stop.minutes, &stop.seconds);
if(start.seconds > stop.seconds)
{
stop.seconds += 60;
--stop.minutes;
}
if(start.minutes > stop.minutes)
{
stop.minutes += 60;
--stop.hours;
}
diff.seconds = stop.seconds - start.seconds;
diff.minutes = stop.minutes - start.minutes;
diff.hours = stop.hours - start.hours;
printf("Difference = %d : %d : %d", diff.hours, diff.minutes, diff.seconds);
return 0;
}
Output
Enter hours, minutes and seconds of start time: 1 45 30 Enter hours, minutes and seconds of stop time: 4 30 10 Difference = 2 : 44 : 40
Using typedef
#include<stdio.h>
typedef struct
{
int hours;
int minutes;
int seconds;
}time;
int main()
{
/* Creating structure variables */
time start, stop, diff;
/* Reading first time period */
printf("Enter hours, minutes and seconds of start time: ");
scanf("%d%d%d", &start.hours,&start.minutes, &start.seconds);
/* Reading second time period */
printf("Enter hours, minutes and seconds of stop time: ");
scanf("%d%d%d", &stop.hours,&stop.minutes, &stop.seconds);
if(start.seconds > stop.seconds)
{
stop.seconds += 60;
--stop.minutes;
}
if(start.minutes > stop.minutes)
{
stop.minutes += 60;
--stop.hours;
}
diff.seconds = stop.seconds - start.seconds;
diff.minutes = stop.minutes - start.minutes;
diff.hours = stop.hours - start.hours;
printf("Difference = %d : %d : %d", diff.hours, diff.minutes, diff.seconds);
return 0;
}
Output
Enter hours, minutes and seconds of start time: 3 50 55 Enter hours, minutes and seconds of stop time: 5 30 20 Difference = 1 : 39 : 25