Advertisement
Guest User

Untitled

a guest
Nov 14th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.74 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4.  
  5. class TKalendarz
  6. {
  7. private:
  8.     int dzien, miesiac, rok;
  9. public:
  10.     TKalendarz(int d, int m, int r);
  11.     bool ustawdate(int d, int m, int r);
  12.     void wyswietl(int typ);
  13.     int podajdzien();
  14.     int podajmiesiac();
  15.     int podajrok();
  16.     string podajdzientyg();
  17.     void zmiendate(int d, int m, int r);
  18.     int dm;
  19. };
  20.  
  21. int main()
  22. {
  23.     TKalendarz data(14,11,2017);
  24.     data.wyswietl(1);
  25.     cout<<data.podajdzientyg()<<endl;
  26.     data.zmiendate(1,0,0);
  27.     data.wyswietl(2);
  28.     system("pause");
  29.     return 0;
  30. }
  31.  
  32. TKalendarz::TKalendarz(int d, int m, int r)
  33. {
  34.     if(!ustawdate(d,m,r))
  35.     {
  36.         dzien=1;
  37.         miesiac=1;
  38.         rok=2009;
  39.     }
  40.     else
  41.     {
  42.         dzien=d;
  43.         miesiac=m;
  44.         rok=r;
  45.     }
  46. }
  47.  
  48. bool TKalendarz::ustawdate(int d, int m, int r)
  49. {
  50.     if(d<1 || d>31)
  51.     {
  52.         return false;
  53.     }
  54.     if(m<1 || m>12)
  55.     {
  56.         return false;
  57.     }
  58.     else
  59.     {
  60.         if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
  61.         {
  62.             dm=31;
  63.         }
  64.         if(m==4 || m==6 || m==9 || m==11)
  65.         {
  66.             dm=30;
  67.         }
  68.         if(m==2)
  69.         {
  70.             if((rok%4==0 && rok%100!=0) || rok%400==0)
  71.             {
  72.                 dm=29;
  73.             }
  74.             else dm=28;
  75.         }
  76.         return true;
  77.     }
  78. }
  79.  
  80. void TKalendarz::wyswietl(int typ)
  81. {
  82.     if(typ==1)
  83.     {
  84.         cout<<dzien<<" ";
  85.         if(miesiac==1)
  86.             cout<<"styczen ";
  87.         else if(miesiac==2)
  88.             cout<<"luty ";
  89.         else if(miesiac==3)
  90.             cout<<"marzec ";
  91.         else if(miesiac==4)
  92.             cout<<"kwiecien ";
  93.         else if(miesiac==5)
  94.             cout<<"maj ";
  95.         else if(miesiac==6)
  96.             cout<<"czerwiec ";
  97.         else if(miesiac==7)
  98.             cout<<"lipiec ";
  99.         else if(miesiac==8)
  100.             cout<<"sierpien ";
  101.         else if(miesiac==9)
  102.             cout<<"wrzesien ";
  103.         else if(miesiac==10)
  104.             cout<<"pazdziernik ";
  105.         else if(miesiac==11)
  106.             cout<<"listopad ";
  107.         else if(miesiac==12)
  108.             cout<<"grudzien ";
  109.         cout<<rok<<endl;
  110.     }
  111.     else if(typ==2)
  112.     {
  113.         cout<<dzien<<"/"<<miesiac<<"/"<<rok<<endl;
  114.     }
  115.     else cout<<dzien<<"."<<miesiac<<"."<<rok<<endl;
  116. }
  117.  
  118. int TKalendarz::podajdzien()
  119. {
  120.     return dzien;
  121. }
  122.  
  123. int TKalendarz::podajmiesiac()
  124. {
  125.     return miesiac;
  126. }
  127.  
  128. int TKalendarz::podajrok()
  129. {
  130.     return rok;
  131. }
  132.  
  133. string TKalendarz::podajdzientyg()
  134. {
  135.     int liczbaDni[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
  136.     int dzienRoku = dzien + liczbaDni[miesiac-1];
  137.     if ((miesiac > 2) && ((rok % 4 == 0  &&  rok % 100 != 0) || rok % 400 == 0) == 1)
  138.         dzienRoku++;
  139.     int yy = (rok - 1) % 100;
  140.     int c = (rok - 1) - yy;
  141.     int g = yy + (yy / 4);
  142.     int wynik = (((((c / 100) % 4) * 5) + g) % 7);
  143.     wynik += dzienRoku - 1;
  144.     wynik %= 7;
  145.     switch (wynik)
  146.     {
  147.     case 0:
  148.         return "poniedzialek";
  149.         break;
  150.     case 1:
  151.         return "wtorek";
  152.         break;
  153.     case 2:
  154.         return "sroda";
  155.         break;
  156.     case 3:
  157.         return "czwartek";
  158.         break;
  159.     case 4:
  160.         return "piatek";
  161.         break;
  162.     case 5:
  163.         return "sobota";
  164.         break;
  165.     case 6:
  166.         return "niedziela";
  167.         break;
  168.     }
  169.  
  170. }
  171.  
  172. void TKalendarz::zmiendate(int d, int m, int r)
  173. {
  174.     rok+=r;
  175.     if(m<0)
  176.         cout<<"ilosc miesiecy < 0 \n";
  177.     else
  178.         miesiac+=m;
  179.     if(d<=0)
  180.         cout<<"ilosc dni <= 0 \n";
  181.     else
  182.         dzien+=d;
  183.     if(dzien>dm)
  184.     {
  185.         miesiac+=dzien/dm;
  186.         dzien=d%dm;
  187.     }
  188.     if(miesiac>12)
  189.     {
  190.         rok+=(miesiac-1)/12;
  191.         if(miesiac%12==0)
  192.             miesiac=12;
  193.         else miesiac=miesiac%12;
  194.     }
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement