Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <stdexcept>
- class Sat
- {
- int sati, minute, sekunde;
- public:
- void Postavi(int sati, int minute, int sekunde);
- void Sljedeci() { PomjeriZa(1); };
- void Prethodni() { PomjeriZa(-1); };
- void PomjeriZa(int pomak);
- int DajSate() const { return sati; };
- int DajMinute() const { return minute; };
- int DajSekunde() const { return sekunde; };
- void Ispisi() const { std::cout<<sati<<":"<<minute<<":"<<sekunde<<std::endl; };
- };
- void Sat::Postavi(int sati, int minute, int sekunde)
- {
- if(sekunde>=60 || minute>=60 || sati>24)
- throw std::domain_error("Neispravan unos");
- this->sati=sati; this->minute=minute; this->sekunde=sekunde;
- }
- void Sat::PomjeriZa(int pomak)
- {
- int s(sekunde), m(minute);
- s+=pomak;
- if(s>=60)
- {
- sekunde%=s;
- m+=s/60;
- if(m>=60)
- {
- minute%=m;
- sati+=m/60;
- }
- else minute=m;
- }
- else sekunde=s;
- }
- int main()
- {
- Sat vrijeme;
- try{
- vrijeme.Postavi(12, 8, 13);
- }
- catch(std::domain_error izuzetak){
- std::cout<<izuzetak.what()<<std::endl;
- return 0;
- }
- vrijeme.Ispisi();
- std::cout<<std::endl<<"Pomjereno za 5 s: ";
- vrijeme.PomjeriZa(5);
- vrijeme.Ispisi();
- std::cout<<std::endl<<"Sljedece: ";
- vrijeme.Sljedeci();
- vrijeme.Ispisi();
- std::cout<<std::endl<<"Prethodno: ";
- vrijeme.Prethodni();
- vrijeme.Ispisi();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement