C 程式,用於計算兩個時間段之間的差


輸入開始和結束時間,包括小時、分鐘和秒。最後,我們需要找出開始和結束時間之間的差。

找出開始和結束時間之間的差的邏輯如下 −

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. 
");    printf("Enter hours, minutes and seconds: ");    scanf("%d %d %d", &start_time.hrs,    &start_time.min,    &start_time.sec);    printf("Enter the stop time.
");    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("
time 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
", 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

更新於:24-Mar-2021

4K+ 次瀏覽

開啟你的 職業

完成課程以獲得認證

開始
廣告