Advertisement
sellmmaahh

tut12-zad2

Aug 2nd, 2015
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <stdexcept>
  4. #include <cmath>
  5. #include <vector>
  6.  
  7.  
  8. using namespace std;
  9.  
  10. class Sat {
  11.     int sati, minute, sekunde;
  12. public:
  13.     void Postavi (int sati, int minute, int sekunde);
  14.     int DajSate() const {return sati; }
  15.     int DajMinute() const {return minute;}
  16.     int DajSekunde () const {return sekunde; }
  17.  
  18.     friend int BrojSekundiIzmedju (const Sat &s1,const Sat &s2);
  19.     friend Sat &operator ++(Sat &s1) {
  20.         s1.sekunde++;
  21.         if (s1.sekunde>59) {
  22.             s1.sekunde=0;
  23.             s1.minute++;
  24.         }
  25.         if (s1.minute<59) {
  26.  
  27.             s1.minute=0;
  28.             s1.sati++;
  29.         }
  30.         return s1;
  31.     }
  32.     friend Sat operator++(Sat &s1, int) {
  33.         Sat pom(s1);
  34.         s1.sekunde++;
  35.         if (s1.sekunde>59) {
  36.             s1.sekunde=0;
  37.             s1.minute++;
  38.         }
  39.         if (s1.minute<59) {
  40.  
  41.             s1.minute=0;
  42.             s1.sati++;
  43.         }
  44.         return pom;
  45.     }
  46.     friend Sat &operator --(Sat &s1) {
  47.     s1.sekunde--;
  48.     return s1;
  49.     }
  50.  friend Sat &operator+=( Sat &s, int pomak) {
  51.     s.sekunde+=pomak;
  52.     int temp=s.sekunde+pomak;
  53.     if (temp>59) {
  54.             s.minute+=temp%60;
  55.     s.sekunde=0;
  56.     }
  57.     if (s.minute>59) {
  58.         s.sati+=s.minute%60;
  59.         s.minute=0;
  60.     }
  61.     return s;
  62. }
  63.  
  64.  friend ostream &operator<<(ostream &tok, const Sat &s) {
  65.  
  66.     tok<<s.sati<<":";
  67.     tok<<s.minute<<":";
  68.     tok<<s.sekunde;
  69. }
  70.  
  71.  
  72. };
  73.  
  74. void Sat::Postavi (int sati, int minute, int sekunde)
  75. { if (sati<0 || minute<0 || sekunde<0 || sati>23 || minute>59 || sekunde>59)
  76. throw domain_error ("Neispravan unos.");
  77.     Sat::sati=sati; Sat::minute=minute; Sat::sekunde=sekunde;
  78. }
  79.  
  80.  
  81.  
  82.  
  83.  
  84. int BrojSekundiIzmedju (const Sat &s1,const Sat &s2) {
  85. return ((s1.sati*3600+s1.minute*60+s1.sekunde)-(s2.sati*3600+s2.minute*60+s2.sekunde));
  86. }
  87.  
  88.     int main () {
  89.         Sat s1, s2;
  90.         s1.Postavi(12,45,30);
  91.         cout<<s1<<endl;
  92.         s2.Postavi(14,6,32);
  93.         s2++;
  94.         cout<<s2;
  95.         cout<<endl;
  96.         cout<<s1.DajMinute()<<endl;
  97.         cout<<s2.DajSekunde();
  98.         s1+=13;
  99.  
  100.         cout<<s1;
  101. cout<<endl;
  102.         int n=BrojSekundiIzmedju(s1,s2);
  103.         cout<<n;
  104.     return 0;
  105.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement