Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- შექმენით Calendar კლასი, რომელშიც დაიცავთ
- ინკაფსულაციის პრინციპს. აღნიშნულ კლასს უნდა ჰქონდეს
- day, month, year ველები, ორი კონსტრუქტორი - ერთი სამ პარამეტრიანი,
- მეორე უპარამეტრო, ასევე უნდა ჰქონდეს დამხმარე ფუნქციები (setter, getter),
- და უნდა ჰქონდეს თარიღის შემოწმების ფუნქცია
- */
- #include <iostream>
- using namespace std;
- class Calendar{
- private:
- int day;
- int month;
- int year;
- public:
- Calendar();
- Calendar(int d, int m, int y);
- void checkDate(int &d, int &m, int &y);
- int get_d();
- void set_d(int d);
- int get_m();
- void set_m(int m);
- int get_y();
- void set_y(int y);
- void printDate(Calendar &calendar);
- };
- Calendar::Calendar(){
- day = 1;
- month = 1;
- year = 1970;
- }
- Calendar::Calendar(int d, int m, int y){
- checkDate(d, m, y);
- day = d;
- month = m;
- year = y;
- }
- int Calendar::get_d(){
- return day;
- }
- int Calendar::get_m(){
- return month;
- }
- int Calendar::get_y(){
- return year;
- }
- void Calendar::set_d(int d){
- day = d;
- }
- void Calendar::set_m(int m){
- month = m;
- }
- void Calendar::set_y(int y){
- year = y;
- }
- void Calendar::checkDate(int &d, int &m, int &y){
- if (d < 0){
- d = -d;
- }
- if (m < 0){
- m = -m;
- }
- if (y < 0){
- y = -y;
- }
- if (m > 12){
- m = m % 12;
- }
- if (y % 4 == 0 && m == 2 && d > 28){
- d = d % 28;
- }
- if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d > 31){
- d = d % 31;
- }
- if ((m == 4 || m == 6 || m == 9 || m == 11 ) && d > 30){
- d = d % 30;
- }
- }
- void printDate(Calendar &c){
- cout << "Day : " << c.get_d() << endl << "Month : " << c.get_m() << endl << "Year : " << c.get_y() << endl << endl;
- }
- int main(){
- Calendar cal1(28,07,1993);
- printDate(cal1);
- Calendar cal2(31, 2, 2012);
- printDate(cal2);
- Calendar cal3;
- printDate(cal3);
- int day, month, year;
- cout << "Shemoitanet dge" << endl;
- cin >> day;
- cout << "Shemoitanet tve" << endl;
- cin >> month;
- cout << "Shemoitanet weli" << endl;
- cin >> year;
- cal3;
- cal3.set_d(day);
- cal3.set_m(month);
- cal3.set_y(year);
- printDate(cal3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement