ป้อนเวลาเริ่มต้นและหยุดด้วยชั่วโมง นาที และวินาที สุดท้าย เราต้องหาความแตกต่างระหว่างเวลาเริ่มต้นและหยุด
ตรรกะในการค้นหาความแตกต่างระหว่างเวลาเริ่มต้นและหยุด จะได้รับด้านล่าง -
while (stop.sec > start.sec){
--start.min;
start.sec += 60;
}
diff->sec = start.sec - stop.sec;
while (stop.min > start.min) {
--start.hrs;
start.min += 60;
}
diff->min = start.min - stop.min;
diff->hrs = start.hrs - stop.hrs; ตัวอย่าง
ต่อไปนี้เป็นโปรแกรมเพื่อค้นหาความแตกต่างระหว่างเวลาเริ่มต้นและหยุด -
#include <stdio.h>
struct time {
int sec;
int min;
int hrs;
};
void diff_between_time(struct time t1,
struct time t2,
struct time *diff);
int main(){
struct time start_time, stop_time, diff;
printf("Enter start time. \n");
printf("Enter hours, minutes and seconds: ");
scanf("%d %d %d", &start_time.hrs,
&start_time.min,
&start_time.sec);
printf("Enter the stop time. \n");
printf("Enter hours, minutes and seconds: ");
scanf("%d %d %d", &stop_time.hrs,
&stop_time.min,
&stop_time.sec);
// Difference between start and stop time
diff_between_time(start_time, stop_time, &diff);
printf("\ntime Diff: %d:%d:%d - ", start_time.hrs,
start_time.min,
start_time.sec);
printf("%d:%d:%d ", stop_time.hrs,
stop_time.min,
stop_time.sec);
printf("= %d:%d:%d\n", diff.hrs,
diff.min,
diff.sec);
return 0;
}
// Computes difference between time periods
void diff_between_time(struct time start,
struct time stop,
struct time *diff){
while (stop.sec > start.sec) {
--start.min;
start.sec += 60;
}
diff->sec = start.sec - stop.sec;
while (stop.min > start.min) {
--start.hrs;
start.min += 60;
}
diff->min = start.min - stop.min;
diff->hrs = start.hrs - stop.hrs;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Enter start time. Enter hours, minutes and seconds: 12 45 57 Enter the stop time. Enter hours, minutes and seconds: 20 35 20 time Diff: 12:45:57 - 20:35:20 = -8:10:37