-
Notifications
You must be signed in to change notification settings - Fork 0
/
Date.cpp
159 lines (147 loc) · 4.13 KB
/
Date.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#define _CRT_SECURE_NO_WARNINGS
#include "string.h"
#include <iostream>
#include "Date.h"
//#define DEBUG
using namespace std;
/*
Конструктор без параметрів
Вхід: відсутній
Вихід: відсутній
*/
Date::Date()
{
#ifdef DEBUG //якщо ми ідентифікували DEBUG, то виконується все до #endif та після нього
cout << "Викликався конструктор без параметрів класу Date - " << this << endl << endl;
#endif
Set("Невідомо", "Невідомо", 0);
}
/*
Конструктор з параметрами
Вхід:
year - рік заснування
month - місяць заснування
day - день заснування
Вихід: відсутній
*/
Date::Date(string year, string month, const int day)
{
#ifdef DEBUG //якщо ми ідентифікували DEBUG, то виконується все до рядку #endif та після нього
cout << "Викликався конструктор з параметрами класу Date - " << this << endl << endl;
#endif
Set(year, month, day);
}
/*
Конструктор копіювання
Вхід:
other - константне посилання на об'єкт класу Date
Вихід: відсутній
*/
Date::Date(const Date& other)
{
#ifdef DEBUG //якщо ми ідентифікували DEBUG, то виконується все до #endif і далі
cout << "Викликався конструктор копіювання класу Date - " << this << endl << endl;
#endif
Set(other._year, other._month, other._day);
}
/*
Геттер для року заснування
Вхід: відсутній
Вихід:
GetYear = newYear - рік заснування
*/
string Date::GetYear()
{
return _year;
}
/*
Геттер для місяця заснування
Вхід: відсутній
Вихід:
GetMonth = newMonth - місяць заснування
*/
string Date::GetMonth()
{
return _month;
}
/*
Геттер для дня заснування
Вхід: відсутній
Вихід:
GetDay = _day - день заснування
*/
int Date::GetDay()
{
return _day;
}
/*
Сеттер для всіх полів об'єкту класу
Вхід:
year - рік заснування
month - місяць заснування
day - день заснування
Вихід: відсутній
*/
void Date::Set(string year, string month, const int day)
{
SetYear(year);
SetMonth(month);
SetDay(day);
}
/*
Сеттер для року заснування
Вхід:
year - рік заснування
Вихід: відсутній
*/
void Date::SetYear(string year)
{
_year = year;
}
/*
Сеттер для місяця заснування
Вхід:
month - місяць заснування
Вихід: відсутній
*/
void Date::SetMonth(string month)
{
_month = month;
}
/*
Сеттер для дня заснування
Вхід:
day - день заснування
Вихід: відсутній
*/
void Date::SetDay(const int day)
{
if (day < 0 || day > 30)
throw(exception("Ви передали некоректне значення дня!"));
else
_day = day;
}
/*
Метод виводу даних про дату заснування до консолі
Вхід: відсутній
Вихід: відсутній
*/
void Date::Show()
{
#ifdef DEBUG //якщо ми ідентифікували DEBUG, то виконується все до #endif і далі
cout << "Рік: " << _year << endl;
cout << "Місяць: " << _month << endl;
cout << "День: " << _day << endl << endl;
#endif
}
/*
Деструктор класу
Вхід: відсутній
Вихід: відсутній
*/
Date::~Date()
{
#ifdef DEBUG //якщо ми ідентифікували DEBUG, то виконується все до та після #endif
cout << "Викликався деструктор класу Date - " << this << endl << endl;
#endif
}