Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string>
- using namespace std;
- class TKalendarz
- {
- private:
- int dzien, miesiac, rok;
- public:
- TKalendarz(int d, int m, int r);
- bool ustawdate(int d, int m, int r);
- void wyswietl(int typ);
- int podajdzien();
- int podajmiesiac();
- int podajrok();
- string podajdzientyg();
- void zmiendate(int d, int m, int r);
- int dm;
- };
- int main()
- {
- TKalendarz data(14,11,2017);
- data.wyswietl(1);
- cout<<data.podajdzientyg()<<endl;
- data.zmiendate(1,0,0);
- data.wyswietl(2);
- system("pause");
- return 0;
- }
- TKalendarz::TKalendarz(int d, int m, int r)
- {
- if(!ustawdate(d,m,r))
- {
- dzien=1;
- miesiac=1;
- rok=2009;
- }
- else
- {
- dzien=d;
- miesiac=m;
- rok=r;
- }
- }
- bool TKalendarz::ustawdate(int d, int m, int r)
- {
- if(d<1 || d>31)
- {
- return false;
- }
- if(m<1 || m>12)
- {
- return false;
- }
- else
- {
- if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
- {
- dm=31;
- }
- if(m==4 || m==6 || m==9 || m==11)
- {
- dm=30;
- }
- if(m==2)
- {
- if((rok%4==0 && rok%100!=0) || rok%400==0)
- {
- dm=29;
- }
- else dm=28;
- }
- return true;
- }
- }
- void TKalendarz::wyswietl(int typ)
- {
- if(typ==1)
- {
- cout<<dzien<<" ";
- if(miesiac==1)
- cout<<"styczen ";
- else if(miesiac==2)
- cout<<"luty ";
- else if(miesiac==3)
- cout<<"marzec ";
- else if(miesiac==4)
- cout<<"kwiecien ";
- else if(miesiac==5)
- cout<<"maj ";
- else if(miesiac==6)
- cout<<"czerwiec ";
- else if(miesiac==7)
- cout<<"lipiec ";
- else if(miesiac==8)
- cout<<"sierpien ";
- else if(miesiac==9)
- cout<<"wrzesien ";
- else if(miesiac==10)
- cout<<"pazdziernik ";
- else if(miesiac==11)
- cout<<"listopad ";
- else if(miesiac==12)
- cout<<"grudzien ";
- cout<<rok<<endl;
- }
- else if(typ==2)
- {
- cout<<dzien<<"/"<<miesiac<<"/"<<rok<<endl;
- }
- else cout<<dzien<<"."<<miesiac<<"."<<rok<<endl;
- }
- int TKalendarz::podajdzien()
- {
- return dzien;
- }
- int TKalendarz::podajmiesiac()
- {
- return miesiac;
- }
- int TKalendarz::podajrok()
- {
- return rok;
- }
- string TKalendarz::podajdzientyg()
- {
- int liczbaDni[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
- int dzienRoku = dzien + liczbaDni[miesiac-1];
- if ((miesiac > 2) && ((rok % 4 == 0 && rok % 100 != 0) || rok % 400 == 0) == 1)
- dzienRoku++;
- int yy = (rok - 1) % 100;
- int c = (rok - 1) - yy;
- int g = yy + (yy / 4);
- int wynik = (((((c / 100) % 4) * 5) + g) % 7);
- wynik += dzienRoku - 1;
- wynik %= 7;
- switch (wynik)
- {
- case 0:
- return "poniedzialek";
- break;
- case 1:
- return "wtorek";
- break;
- case 2:
- return "sroda";
- break;
- case 3:
- return "czwartek";
- break;
- case 4:
- return "piatek";
- break;
- case 5:
- return "sobota";
- break;
- case 6:
- return "niedziela";
- break;
- }
- }
- void TKalendarz::zmiendate(int d, int m, int r)
- {
- rok+=r;
- if(m<0)
- cout<<"ilosc miesiecy < 0 \n";
- else
- miesiac+=m;
- if(d<=0)
- cout<<"ilosc dni <= 0 \n";
- else
- dzien+=d;
- if(dzien>dm)
- {
- miesiac+=dzien/dm;
- dzien=d%dm;
- }
- if(miesiac>12)
- {
- rok+=(miesiac-1)/12;
- if(miesiac%12==0)
- miesiac=12;
- else miesiac=miesiac%12;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement