Advertisement
amermo

TP T-9 Z3

Apr 29th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <stdexcept>
  4.  
  5. class Sat
  6. {
  7.     int sati, minute, sekunde;
  8. public:
  9.     void Postavi(int sati, int minute, int sekunde);
  10.     void Sljedeci() { PomjeriZa(1); }
  11.     void Prethodni() { PomjeriZa(-1); }
  12.     void PomjeriZa(int pomak);
  13.     int DajSate() const { return sati; }
  14.     int DajMinute() const { return minute; }
  15.     int DajSekunde() const { return sekunde; }
  16.     void Ispisi() const;
  17. };
  18.  
  19. void Sat::Ispisi() const
  20. {
  21.     if (sati < 10)
  22.         std::cout << '0';
  23.     std::cout << sati << ":";
  24.     if (minute < 10)
  25.         std::cout << '0';
  26.     std::cout << minute << ":";
  27.     if (sekunde < 10)
  28.         std::cout << '0';
  29.     std::cout << sekunde;
  30. }
  31. void Sat::Postavi(int sati, int minute, int sekunde)
  32. {
  33.     if (sati < 0 || sati > 23 || minute < 0 || minute > 59 || sekunde < 0 || sekunde > 59) throw std::domain_error("Vrijeme nije validno!");
  34.     Sat::sati = sati; Sat::minute = minute; Sat::sekunde = sekunde;
  35. }
  36.  
  37. void Sat::PomjeriZa(int pomak)
  38. {
  39.     sati += pomak / 3600; minute += (pomak / 60) % 60; sekunde += pomak % 60;
  40.     if (sekunde > 59)
  41.     {
  42.         minute++;
  43.         sekunde -= 60;
  44.     }
  45.     if (minute > 59)
  46.     {
  47.         sati++;
  48.         minute -= 60;
  49.     }
  50.     if (sati > 23)
  51.         sati -= 24;
  52.     if (sekunde < 0)
  53.     {
  54.         minute--;
  55.         sekunde += 60;
  56.     }
  57.     if (minute < 0)
  58.     {
  59.         sati--;
  60.         minute += 60;
  61.     }
  62.     if (sati < 0)
  63.         sati += 24;
  64. }
  65.  
  66. int main()
  67. {
  68.     system("PAUSE");
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement