Advertisement
skb50bd

Lab: 5 [Extended]

Jun 25th, 2015
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.41 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. class Time24;
  6.  
  7. class Time12 {
  8. private:
  9.     int hh, mm, ss;
  10.     bool PoD;
  11. public:
  12.     Time12(): hh(0), mm(0), ss(0), PoD(false) {}
  13.     Time12(int sec);
  14.     Time12(Time24 X);
  15.     ~Time12() {}
  16.  
  17.     int getHH() {return hh;}
  18.     int getMM() {return mm;}
  19.     int getSS() {return ss;}
  20.     bool getPoD() {return PoD;}
  21.     void setHH(int h) { hh = h;}
  22.     void setMM(int m) { mm = m;}
  23.     void setSS(int s) { ss = s;}
  24.     void setPoD(bool pod) { PoD = pod;}
  25.  
  26.     void readTime();
  27.     void showTime();
  28.     operator int();
  29.     operator Time24();
  30. };
  31.  
  32.  
  33. class Time24 {
  34. private:
  35.     int hh, mm, ss;
  36. public:
  37.     Time24(): hh(0), mm(0), ss(0) {}
  38.     Time24(int sec);
  39.     //Time24(Time12 X);
  40.     ~Time24() {}
  41.  
  42.     int getHH() {return hh;}
  43.     int getMM() {return mm;}
  44.     int getSS() {return ss;}
  45.     void setHH(int h) { hh = h;}
  46.     void setMM(int m) { mm = m;}
  47.     void setSS(int s) { ss = s;}
  48.     void readTime();
  49.     void showTime();
  50.     operator int() {return (hh * 3600 + mm * 60 + ss);}
  51.     //operator Time12();
  52. };
  53.  
  54.  
  55. int main() {
  56.  
  57.     int seconds;
  58.  
  59.     cout << "Enter Second Value: ";
  60.     cin >> seconds;
  61.     Time24 t24(seconds);
  62.     t24.showTime();
  63.     Time12 t12(seconds);
  64.     t12.showTime();
  65.  
  66.     t24.readTime();
  67.     seconds = t24;
  68.     cout << "Corresponding Second Value: " << seconds << endl;
  69.     t12.readTime();
  70.     seconds = t12;
  71.     cout << "Corresponding Second Value: " << seconds << endl;
  72.  
  73.     t24.readTime();
  74.     t12 = t24;
  75.     t12.showTime();
  76.     t12.readTime();
  77.     t24 = t12;
  78.     t24.showTime();
  79.  
  80.     return 0;
  81. }
  82.  
  83.  
  84.  
  85. Time12 :: Time12(Time24 X) {
  86.     ss = X.getSS();
  87.     mm = X.getMM();
  88.     if(X.getHH() > 12) {
  89.         hh = X.getHH() - 12;
  90.         PoD = true;
  91.     }
  92.     else if(X.getHH() == 12) {
  93.         hh = X.getHH();
  94.         PoD = true;
  95.     }
  96.     else if(X.getHH() == 0) {
  97.         hh = 12;
  98.         PoD = false;
  99.     }
  100.     else{
  101.         hh = X.getHH();
  102.         PoD = false;
  103.     }
  104. }
  105.  
  106.  
  107. Time12 :: Time12(int sec) {
  108.     if(sec > 3600) {
  109.         hh = sec / 3600;
  110.         sec %= 3600;
  111.     }
  112.     if(sec > 60) {
  113.         mm = sec / 60;
  114.         sec %= 60;
  115.     }
  116.     ss = sec;
  117.     PoD = false;
  118.     if(hh > 12) { hh -= 12, PoD = true;}
  119.     else if(hh == 12) { hh = 12, PoD = true;}
  120.     else if(hh == 0) { hh = 12;}
  121. }
  122.  
  123.  
  124. void Time12 :: readTime() {
  125.     string pod;
  126.     cout << "Enter Time12 Value: ";
  127.     cin >> hh >> mm >> ss >> pod;
  128.     if(pod == "AM" || pod == "am")
  129.         PoD = false;
  130.     else if(pod == "PM" || pod == "pm")
  131.         PoD = true;
  132. }
  133.  
  134.  
  135. void Time12 :: showTime() {
  136.     cout << "Corresponding Time12 Value: " << hh << " : " << mm << " : " << ss;
  137.     PoD ? cout << " PM" : cout << " AM" << endl;
  138. }
  139.  
  140.  
  141. Time12 :: operator int() {
  142.     int h;
  143.     if(PoD == true && hh == 12) h = 12;
  144.     else if(PoD == true) h = hh + 12;
  145.     else if(PoD == false && hh == 12) h = 0;
  146.     else h = hh;
  147.  
  148.     return (h * 3600 + mm * 60 + ss);
  149. }
  150.  
  151.  
  152. Time12 :: operator Time24() {
  153.     Time24 temp;
  154.     temp.setMM(mm);
  155.     temp.setSS(ss);
  156.     if(PoD == false && hh == 12)
  157.         temp.setHH(0);
  158.     else if(PoD == false && hh < 12)
  159.         temp.setHH(hh);
  160.     else if(PoD == true && hh == 12)
  161.         temp.setHH(12);
  162.     else
  163.         temp.setHH(12 + hh);
  164.     return temp;
  165. }
  166.  
  167.  
  168. Time24 :: Time24(int sec) {
  169.     hh = sec / 3600;
  170.     sec %= 3600;
  171.     mm = sec / 60;
  172.     sec %= 60;
  173.     ss = sec;
  174. }
  175.  
  176.  
  177. //Time24 :: Time24(Time12 X) {
  178. //    ss = X.getSS();
  179. //    mm = X.getMM();
  180. //    if(X.getPoD() == true && X.getHH() != 12)
  181. //        hh = X.getHH() + 12;
  182. //    else if(X.getPoD() == false && X.getHH() == 12)
  183. //        hh = 0;
  184. //    else
  185. //        hh = X.getHH();
  186. //}
  187.  
  188.  
  189. void Time24 :: readTime() {
  190.     cout << "Enter Time24 Value: ";
  191.     cin >> hh >> mm >> ss;
  192. }
  193.  
  194.  
  195. void Time24 :: showTime() {
  196.     cout << "Corresponding Time24 Value: " << hh << " : " << mm << " : " << ss << endl;
  197. }
  198.  
  199.  
  200. //Time24 :: operator Time12(){
  201. //    Time12 temp;
  202. //    temp.setMM(mm);
  203. //    temp.setSS(ss);
  204. //    if(hh > 12) {
  205. //        temp.setHH(hh - 12);
  206. //        temp.setPoD(true);
  207. //    }
  208. //    else if(hh == 12) {
  209. //        temp.setHH(12);
  210. //        temp.setPoD(true);
  211. //    }
  212. //    else if(hh < 12 && hh != 0) {
  213. //        temp.setHH(hh);
  214. //        temp.setPoD(false);
  215. //    }
  216. //    else if(hh == 0) {
  217. //        temp.setHH(12);
  218. //        temp.setPoD(false);
  219. //    }
  220. //    return temp;
  221. //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement