tungggg

timeDifference

Dec 18th, 2021
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ms(s,n) memset(s,n,sizeof(s))
  5. #define all(a) a.begin(),a.end()
  6. #define present(t, x) (t.find(x) != t.end())
  7. #define sz(a) int((a).size())
  8. #define FOR(i, a, b) for (int i = (a); i < (b); ++i)
  9. #define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
  10. #define pb push_back
  11. #define pf push_front
  12. #define fi first
  13. #define se second
  14. #define mp make_pair
  15. #define endl "\n"
  16. #define set setw(2)<<setfill('0')
  17.  
  18. typedef long long ll;
  19. typedef unsigned long long ull;
  20. typedef long double ld;
  21. typedef pair<int,int> pi;
  22. typedef vector<int> vi;
  23. typedef vector<pi> vii;
  24.  
  25. const int MOD = (int) 1e9+7;
  26. const int INF = (int) 1e9+2804;
  27. inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
  28. inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
  29.  
  30. struct time1 {
  31.     int h,t,s;
  32.     // constructor khong co tham so (parameter)
  33.     time1(){
  34.         h=0;
  35.         t=0;
  36.         s=0;
  37.     }
  38.     time1 (int _h, int _t, int _s){
  39.         h=_h;
  40.         t=_t;
  41.         s=_s;
  42.     }
  43.  
  44. };
  45.  
  46. void  getDifference(time1 a, time1 b){
  47.     int deltaHour, deltaMin, deltaSec;
  48.     // mac dinh la a.h > b.h  
  49.     if(a.s>=b.s){
  50.         deltaSec=a.s-b.s;
  51.     }
  52.     else {
  53.         a.s+=60;
  54.         a.t--;
  55.         deltaSec=a.s-b.s;
  56.     }
  57.     if(a.t>=b.t){
  58.         deltaMin=a.t-b.t;
  59.     }
  60.     else {
  61.         a.t+=60;
  62.         a.h--;
  63.         deltaMin=a.t-b.t;
  64.     }
  65.     if(a.h<=b.h) deltaHour=0;
  66.     else deltaHour=a.h-b.h;
  67.     cout<<set<<deltaHour<<":"<<set<<deltaMin<<":"<<set<<deltaSec;
  68. }
  69.  
  70. struct Time{
  71.     int hour, minute, second;
  72.     Time(){
  73.         hour=minute=second=0;
  74.     }
  75.     Time(int initHour, int initMinute, int initSecond){
  76.         hour=initHour;
  77.         minute=initMinute;
  78.         second=initSecond;
  79.     }
  80.     void getTimeDifference(Time other){
  81.         int dh,dm,ds;
  82.         if(second>=other.second){
  83.             ds=second-other.second;
  84.         }
  85.         else {
  86.             second+=60;
  87.             minute--;
  88.             ds=second-other.second;
  89.         }
  90.         if(minute>=other.minute){
  91.             dm=minute-other.minute;
  92.  
  93.         }else{
  94.             minute+=60;
  95.             hour--;
  96.             dm=minute-other.minute;
  97.         }
  98.         if(hour>=other.hour){
  99.             dh=hour-other.hour;
  100.         }
  101.         else dh=0;
  102.         cout<<set<<dh<<":"<<set<<dm<<":"<<set<<ds;
  103.     }
  104. };
  105.  
  106.  
  107.  
  108. int main(){
  109.     Time a,b;
  110.     cin>>a.hour>>a.minute>>a.second;
  111.     cin>>b.hour>>b.minute>>b.second;
  112.     if(a.hour>b.hour){
  113.         a.getTimeDifference(b);
  114.     }
  115.     else {
  116.         b.getTimeDifference(a);
  117.     }
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment