Проверить корректность реализации класса - C#
Формулировка задачи:
есть ли шанс на жизнь у данного класса? И если да то как теперь вывести все на форму?
class date
{
public const int MonthInYear = 12;
public const int DayInYear = 365;
public const int DayInMonth = 31;
public int Year { get; set; }
public int Month { get; set; }
public int Day { get; set; }
public date(int year, int month, int day)
{
Day = day;
Month = month;
Year = year;
}
public void Isk(int year, int month, int day)
{
if (day > 31 || day < 1)
{
throw new ArgumentException("Days must be at least between 1-31");
}
if (month > 12 || month < 1)
{
throw new ArgumentException("Month must be between 1-12");
}
if (year < 0)
{
throw new ArgumentException("Years must be positve");
}
Day = day;
Month = month;
Year = year;
}
// метод для добавления дня
public void AddDay(int day)
{
int plusYear = day / DayInYear;
day = day - plusYear * DayInYear;
int plusMonth = day / DayInMonth;
day = day - plusMonth * DayInMonth;
switch (Month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day + Day > 31)
{
plusMonth++;
day = day - (31 - Day);
}
else
{
day = Day + day;
}
if (Month + plusMonth > 12)
{
plusYear++;
Month = Month - (12 - plusMonth);
}
else
{
Month += plusMonth;
}
Year += plusYear;
Day = day;
break;
case 4:
case 6:
case 9:
case 11:
if (day + Day > 30)
{
plusMonth++;
day = day - (30 - Day);
}
else
{
day = Day + day;
}
Year += plusYear;
if (Month + plusMonth > 12)
{
plusYear++;
Month = Month - (12 - plusMonth);
}
else
{
Month += plusMonth;
}
Day = day;
break;
case 2:
if (VisYear(Year))
{
if (day + Day > 29)
{
plusMonth++;
day = day - (29 - Day);
}
else
{
day = Day + day;
}
Year += plusYear;
if (Month + plusMonth > 12)
{
plusYear++;
Month = Month - (12 - plusMonth);
}
else
{
Month += plusMonth;
}
Day = day;
}
else
{
if (day + Day > 28)
{
plusMonth++;
day = day - (28 - Day);
}
else
{
day = Day + day;
}
Year += plusYear;
if (Month + plusMonth > 12)
{
plusYear++;
Month = Month - (12 - plusMonth);
}
else
{
Month += plusMonth;
}
Day = day;
}
break;
}
}
// метод для проверки на високосный год
public bool VisYear(int year)
{
bool flag = false;
if (year % 4 == 0)
flag = true;
else
return flag;
if (year % 100 == 0)
if (year % 400 != 0)
flag = false;
return flag;
}
// метод для изменения месяца
public void AddMonth(int month)
{
int plusYear = month / MonthInYear;
month = month - plusYear * MonthInYear;
if (month + Month > 12)
{
plusYear++;
month = month - (12 - Month);
}
else
{
month = Month + month;
}
Year += plusYear;
Month = month;
}
// метод для изменения года
public void AddYear(int year)
{
year = Year + year;
Year = year;
}
}
}Решение задачи: «Проверить корректность реализации класса»
textual
Листинг программы
readonly Int32=365;