Computer Science, asked by ashokkumarnc, 5 hours ago

1
SHORTEST TIME DURATION (30 MARKS)
2
Print the shortest duration between the time values given
in the input array. The time values are given in the format
(hour:minute:second). The time values in the array are in
no particular order.
3
4
5
6
Example:
Input : {12:34:55,1:12:13,8:12:15)
output :
4:22:40
Explanation:
12:34:55 - 8:12:15 = 4:22:40
12:34:55 - 1:12:13 = 11:22:42
8:12:15 - 1:12:13 = 7:0:02
smallest is 4:22:40
Input Format:​

Answers

Answered by mh4410878
1

Programiz

Search Programiz

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:

C User-defined functions

C struct

C Structure and Function

C structs and Pointers

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 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;

}

Similar questions