Advertisement
poor_fool_mloody

DataCh

Dec 4th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. class Data
  8. {
  9. public:
  10. Data(int d, int m, int r);
  11. ~Data();
  12.  
  13. private:
  14. int m_nDzien;
  15. int m_nMiesiac;
  16. int m_nRok;
  17. void Koryguj();
  18.  
  19. public:
  20. void Ustaw(int d, int m, int r);
  21. int Dzien() const;
  22. int Miesiac() const;
  23. int Rok() const;
  24. void Wypisz() const;
  25. void Wpisz();
  26. int Porownaj(const Data &wzor) const;
  27. friend istream &operator >> (istream &we, Data &d);
  28. friend ostream& operator<<(ostream &wy, const Data &d);
  29. };
  30.  
  31. ******************************************************************
  32. ******************************************************************
  33.  
  34. #include "Data.h"
  35.  
  36.  
  37.  
  38. Data::Data(int d, int m, int r)
  39. {
  40. m_nDzien = d;
  41. m_nMiesiac = m;
  42. m_nRok = r;
  43. }
  44.  
  45.  
  46. Data::~Data()
  47. {
  48. }
  49.  
  50.  
  51.  
  52. void Data::Ustaw(int d, int m, int r)
  53. {
  54. m_nDzien = d;
  55. m_nMiesiac = m;
  56. m_nRok = r;
  57. Koryguj();
  58. }
  59.  
  60. int Data::Dzien() const
  61. {
  62. return m_nDzien;
  63. }
  64.  
  65. int Data::Miesiac() const
  66. {
  67. return m_nMiesiac;
  68. }
  69.  
  70. int Data::Rok() const
  71. {
  72. return m_nRok;
  73. }
  74.  
  75. void Data::Wypisz() const
  76. {
  77. cout << m_nDzien << "-" << m_nMiesiac << "-" << m_nRok;
  78. }
  79.  
  80. void Data::Wpisz()
  81. {
  82. cout << "\ndzien: ";
  83. cin >> m_nDzien;
  84. cout << "miesiac: ";
  85. cin >> m_nMiesiac;
  86. cout << "rok: ";
  87. cin >> m_nRok;
  88. Koryguj();
  89. }
  90.  
  91. void Data::Koryguj()
  92. {
  93. if (m_nRok < 0)
  94. m_nRok = 0;
  95. else if (m_nRok > 2016)
  96. m_nRok = 2016;
  97. if (m_nMiesiac < 1)
  98. m_nMiesiac = 1;
  99. else if (m_nMiesiac > 12)
  100. m_nMiesiac = 12;
  101. if (m_nDzien < 1)
  102. m_nDzien = 1;
  103. else if (m_nDzien > 31)
  104. m_nDzien = 31;
  105. if ((m_nMiesiac == 2) && (m_nRok % 4 == 0) && (m_nDzien > 29))
  106. m_nDzien = 29;
  107. else if ((m_nMiesiac == 2) && (m_nRok % 4 != 0) && (m_nDzien > 28))
  108. m_nDzien = 28;
  109. if (m_nMiesiac == 4 || m_nMiesiac == 6 || m_nMiesiac == 9 || m_nMiesiac == 11)
  110. if (m_nDzien > 30)
  111. m_nDzien = 30;
  112. }
  113.  
  114. int Data::Porownaj(const Data &wzor) const
  115. {
  116. if ((this->m_nDzien == wzor.m_nDzien) && (this->m_nMiesiac == wzor.m_nMiesiac) && (this->m_nRok == wzor.m_nRok))
  117. return 0;
  118. else
  119. {
  120. if (this->m_nRok < wzor.m_nRok)
  121. return 1;
  122. else
  123. if ((this->m_nRok == wzor.m_nRok) && (this->m_nMiesiac < wzor.m_nMiesiac))
  124. return 1;
  125. else
  126. if ((this->m_nRok == wzor.m_nRok) && (this->m_nMiesiac == wzor.m_nMiesiac) && (this->m_nDzien < wzor.m_nDzien))
  127. return 1;
  128. else
  129. return -1;
  130. }
  131. }
  132.  
  133. istream & operator >> (istream & we, Data & d)
  134. {
  135. we >> d.m_nDzien >> d.m_nMiesiac >> d.m_nRok;
  136. d.Koryguj();
  137. return we;
  138. }
  139.  
  140. ostream & operator<<(ostream & wy, const Data & d)
  141. {
  142. wy << d.m_nDzien << endl << d.m_nMiesiac << endl << d.m_nRok;
  143. return wy;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement