Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- using namespace std;
- class Data
- {
- public:
- Data(int d, int m, int r);
- ~Data();
- private:
- int m_nDzien;
- int m_nMiesiac;
- int m_nRok;
- void Koryguj();
- public:
- void Ustaw(int d, int m, int r);
- int Dzien() const;
- int Miesiac() const;
- int Rok() const;
- void Wypisz() const;
- void Wpisz();
- int Porownaj(const Data &wzor) const;
- friend istream &operator >> (istream &we, Data &d);
- friend ostream& operator<<(ostream &wy, const Data &d);
- };
- ******************************************************************
- ******************************************************************
- #include "Data.h"
- Data::Data(int d, int m, int r)
- {
- m_nDzien = d;
- m_nMiesiac = m;
- m_nRok = r;
- }
- Data::~Data()
- {
- }
- void Data::Ustaw(int d, int m, int r)
- {
- m_nDzien = d;
- m_nMiesiac = m;
- m_nRok = r;
- Koryguj();
- }
- int Data::Dzien() const
- {
- return m_nDzien;
- }
- int Data::Miesiac() const
- {
- return m_nMiesiac;
- }
- int Data::Rok() const
- {
- return m_nRok;
- }
- void Data::Wypisz() const
- {
- cout << m_nDzien << "-" << m_nMiesiac << "-" << m_nRok;
- }
- void Data::Wpisz()
- {
- cout << "\ndzien: ";
- cin >> m_nDzien;
- cout << "miesiac: ";
- cin >> m_nMiesiac;
- cout << "rok: ";
- cin >> m_nRok;
- Koryguj();
- }
- void Data::Koryguj()
- {
- if (m_nRok < 0)
- m_nRok = 0;
- else if (m_nRok > 2016)
- m_nRok = 2016;
- if (m_nMiesiac < 1)
- m_nMiesiac = 1;
- else if (m_nMiesiac > 12)
- m_nMiesiac = 12;
- if (m_nDzien < 1)
- m_nDzien = 1;
- else if (m_nDzien > 31)
- m_nDzien = 31;
- if ((m_nMiesiac == 2) && (m_nRok % 4 == 0) && (m_nDzien > 29))
- m_nDzien = 29;
- else if ((m_nMiesiac == 2) && (m_nRok % 4 != 0) && (m_nDzien > 28))
- m_nDzien = 28;
- if (m_nMiesiac == 4 || m_nMiesiac == 6 || m_nMiesiac == 9 || m_nMiesiac == 11)
- if (m_nDzien > 30)
- m_nDzien = 30;
- }
- int Data::Porownaj(const Data &wzor) const
- {
- if ((this->m_nDzien == wzor.m_nDzien) && (this->m_nMiesiac == wzor.m_nMiesiac) && (this->m_nRok == wzor.m_nRok))
- return 0;
- else
- {
- if (this->m_nRok < wzor.m_nRok)
- return 1;
- else
- if ((this->m_nRok == wzor.m_nRok) && (this->m_nMiesiac < wzor.m_nMiesiac))
- return 1;
- else
- if ((this->m_nRok == wzor.m_nRok) && (this->m_nMiesiac == wzor.m_nMiesiac) && (this->m_nDzien < wzor.m_nDzien))
- return 1;
- else
- return -1;
- }
- }
- istream & operator >> (istream & we, Data & d)
- {
- we >> d.m_nDzien >> d.m_nMiesiac >> d.m_nRok;
- d.Koryguj();
- return we;
- }
- ostream & operator<<(ostream & wy, const Data & d)
- {
- wy << d.m_nDzien << endl << d.m_nMiesiac << endl << d.m_nRok;
- return wy;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement