計算兩個時間的時間間隔


 

時間間隔

Description

從鍵盤輸入兩個時間點(24小時制),輸出兩個時間點之間的時間間隔,時間間隔用“小時:分鍾:秒”表示。
如:3點5分25秒應表示為--03:05:25.假設兩個時間在同一天內,時間先后順序與輸入無關。

Input

輸入包括兩行。
第一行為時間點1。
第二行為時間點2。

Output

以“小時:分鍾:秒”的格式輸出時間間隔。
格式參看輸入輸出。

Sample

Input 

12:01:12
13:09:43

Output 

01:08:31



第一種方法:
 1 #include<stdio.h>
 2 int main()  3 {  4     int h1,h2,m1,m2,s1,s2;  5     scanf("%d:%d:%d",&h1,&m1,&s1);  6     scanf("%d:%d:%d",&h2,&m2,&s2);  7     int h=0,m=0,s=0;  8     if(h1-h2>0)  9  { 10         h=h1-h2; 11         m=m1-m2; 12         if(m<0) 13  { 14             h=h-1; 15             m=m2-m1; 16  } 17         s=s1-s2; 18         if(s<0) 19  { 20             m=m-1; 21             s=s2-s1; 22  } 23  } 24     else
25  { 26         h=h2-h1; 27         m=m2-m1; 28         if(m<0) 29  { 30             h=h-1; 31             m=m1-m2; 32  } 33         s=s2-s1; 34         if(s<0) 35  { 36             m=m-1; 37             s=s1-s2; 38  } 39  } 40     printf("%02d:%02d:%02d",h,m,s); 41     return 0; 42  }

 

第二種方法:

 1 #include<stdio.h>
 2 typedef struct Time{  3     int h,m,s;  4 }Time;  5 
 6 void readtime(Time *time)  7 {  8     scanf("%d:%d:%d",&time->h,&time->m,&time->s);  9 } 10 
11 void printftime(Time *time) 12 { 13     printf("%02d:%02d:%02d",time->h,time->m,time->s); 14 } 15 
16 void subtime(Time *time1,Time *time2,Time *time) 17 { 18     long t1,t2,t; 19     t1=time1->h*3600+time1->m*60+time1->s; 20     t2=time2->h*3600+time2->m*60+time2->s; 21     t=t1-t2; 22     if(t<0) 23  { 24         t=t2-t1; 25         time->h=t/3600; 26         time->m=(t-time->h*3600)/60; 27         time->s=t%60; 28  } 29 } 30 int main() 31 { 32  Time t1,t2,t; 33     readtime(&t1); 34     readtime(&t2); 35     subtime(&t1,&t2,&t); 36     printftime(&t); 37     return 0; 38 }

注意:C語言中輸入字符比較容易,所以這個題用C語言做比較簡單,還有最后輸出結果時如果數字小於10,需要補一個0在前面,也是直接用C語言比較簡單


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM