Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef DANE_H_INCLUDED
- #define DANE_H_INCLUDED
- #include <iostream>
- #include <stdexcept>
- #include <sstream>
- using namespace std;
- struct Osoba
- {
- private:
- string imie;
- string nazwisko;
- string pesel;
- string rok;
- string miesiac;
- string dzien;
- public:
- Osoba(string i="", string n="", string p="", string r="", string m="", string d="")
- {
- imie=i;
- nazwisko=n;
- pesel=p;
- rok=r;
- miesiac=m;
- dzien=d;
- }
- ~Osoba()
- {
- }
- void setImie(string i)
- {
- imie=i;
- }
- void setNazwisko(string n)
- {
- nazwisko=n;
- }
- void setPesel(string p)
- {
- pesel=p;
- dzien=pesel.substr(4,2);
- int d;
- istringstream is(dzien);
- is >> d;
- miesiac=pesel.substr(2,2);
- int m;
- istringstream is1(miesiac);
- is1 >> m;
- rok=pesel.substr(0,2);
- int r;
- istringstream is2(rok);
- is2 >> r;
- if(m%2==0 && m!=8)
- {
- if(d>30)
- throw logic_error("zły dzień!");
- }
- if(m%2!=0)
- {
- if(d>31)
- throw logic_error("zły dzień!");
- }
- if(m>32)
- {
- throw logic_error("Zly miesiac!");
- }
- }
- void setRok(string r)
- {
- rok=r;
- }
- void setMiesiac(string m)
- {
- miesiac=m;
- }
- void setDzien(string d)
- {
- dzien=d;
- }
- string getImie()const
- {
- return imie;
- }
- string getNazwisko()const
- {
- return nazwisko;
- }
- string getPesel()const
- {
- return pesel;
- }
- string getDzien()const
- {
- string dzien=pesel.substr(4,2);
- return dzien;
- }
- string getMiesiac()const
- {
- string miesiac=pesel.substr(2,2);
- int m;
- istringstream is1(miesiac);
- is1 >> m;
- if(m>20 && m<33)
- {
- m=m-20;
- }
- ostringstream ss;
- ss << m;
- miesiac=ss.str();
- if(miesiac.size()==1)
- miesiac="0" + miesiac;
- return miesiac;
- }
- string getRok() const
- {
- string miesiac=pesel.substr(2,2);
- int m;
- istringstream is1(miesiac);
- is1 >> m;
- string rok=pesel.substr(0,2);
- int r;
- istringstream is2(rok);
- is2 >> r;
- if(m<=12)
- {
- r=r+1900;
- }
- else if(m>20 && m<33)
- {
- r=r+2000;
- }
- else
- {
- r=r;
- }
- ostringstream ss;
- ss << r;
- rok=ss.str();
- return rok;
- }
- bool operator< (const Osoba&o)
- {
- return dzien<o.dzien, miesiac<o.miesiac, rok<o.rok;
- }
- bool operator> (const Osoba&o)
- {
- return rok>o.rok, miesiac>o.miesiac, dzien>o.dzien;
- }
- };
- #endif // DANE_H_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement