Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <stdexcept>
- #include <iomanip>
- class Sat
- {
- int sati, minute, sekunde;
- public:
- Sat(int sati, int minute, int sekunde) { Postavi(sati, minute, sekunde);}
- void Postavi(int sati, int minute, int sekunde);
- int DajSate() const { return sati; };
- int DajMinute() const { return minute; };
- int DajSekunde() const { return sekunde; };
- friend std::ostream &operator << (std::ostream &tok, const Sat& satic);
- Sat &operator+=(int pomak);
- Sat &operator++();
- Sat operator++(int);
- };
- 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;
- }
- std::ostream &operator <<(std::ostream &tok, const Sat& satic){
- tok << std::setw(2) << std::setfill('0')<<satic.sati<<":"
- << std::setw(2) << std::setfill('0')<<satic.minute<<":"
- <<std::setw(2) << std::setfill('0')<<satic.sekunde<<std::endl;}
- Sat &Sat::operator+=(int pomak)
- {
- sekunde+=pomak;
- if (sekunde>59) while(sekunde>59) {sekunde-=60; minute++;}
- if (minute>59) while(minute>59) {minute-=60; sati++;}
- if (sati>23) sati=0;
- return *this;
- }
- Sat &Sat::operator++()
- {
- sekunde++;
- if (sekunde>59) while(sekunde>59) {sekunde-=60; minute++;}
- if (minute>59) while(minute>59) {minute-=60; sati++;}
- if (sati>23) sati=0;
- return *this;
- }
- Sat Sat::operator++(int)
- {
- Sat pomocni(*this);
- sekunde++;
- if (sekunde>59) while(sekunde>59) {sekunde-=60; minute++;}
- if (minute>59) while(minute>59) {minute-=60; sati++;}
- if (sati>23) sati=0;
- return pomocni;
- }
- int main(){
- Sat satic(23,59,59); std::cout<<satic;
- satic+=1; std::cout<<satic;
- satic++; std::cout<<satic;
- ++satic+=1; std::cout<<satic++;
- std::cout<<satic;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement