с задачей на С++ Описать тип TDate — структур с полями целого типа Day (день), Month (месяц) и Year (год). Описать функцию CheckDate(D) целого типа с параметром типа TDate, которая проверяет правильность даты, указанной в параметре D. Если дата D является правильной, то функция возвращает 0; если в дате указан неверный номер месяца, то функция возвращает 1; если в дате указан неверный день для данного месяца, то возвращается 2. Вывести значение функции CheckDate для пяти данных дат.
В функции CheckDate() присутствует все необходимые проверки правильности введенной даты.
Код программы:
#include <iostream>
#include <locale>
using namespace std;
struct TDate{
int Day;
int Month;
int Year;
};
int CheckDate(TDate D) {
if (D.Month < 1 || D.Month > 12)
return 1;
if (D.Month % 2 == 1) {
if (D.Month < 8) {
if (D.Day < 1 || D.Day > 31)
return 2;
}
else {
if (D.Day < 1 || D.Day > 30)
return 2;
}
}
else{
if (D.Month == 2) {
if (D.Year % 4 == 0) {
if (D.Day < 1 || D.Day > 29)
return 2;
}
else {
if (D.Day < 1 || D.Day > 28)
return 2;
}
}
else {
if (D.Month >= 8) {
if (D.Day < 1 || D.Day > 31)
return 2;
}
else {
if (D.Day < 1 || D.Day > 30)
return 2;
}
}
}
return 0;
}
int main(void) {
TDate a = { 29, 2, 2035 },
b = { 29, 2, 2036 },
c = { 25, 12, 2056 },
d = { 31, 11, 2001 },
e = { 30, 4, 2004 },
g = { 2, 13, 2000 };
cout << CheckDate(a) << endl;
cout << CheckDate(b) << endl;
cout << CheckDate(c) << endl;
cout << CheckDate(d) << endl;
cout << CheckDate(e) << endl;
cout << CheckDate(g) << endl;
}