ป้อนเวลาเริ่มต้นและหยุดด้วยชั่วโมง นาที และวินาที สุดท้าย เราต้องหาความแตกต่างระหว่างเวลาเริ่มต้นและหยุด
ตรรกะในการค้นหาความแตกต่างระหว่างเวลาเริ่มต้นและหยุด จะได้รับด้านล่าง -
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