Составить описание класса для представления даты, разбор кода - C#
Формулировка задачи:
Составить описание класса для представления даты. Предусмотреть возможности допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Создать методы изменения даты на заданное количество дней, месяцев и лет. Написать программу, демонстрирующую все разработанные элементы класса.
Вот программа, но я не уверен сделана ли она правильно, а если и правильно, то как она работает?
Ввожу любые значения и просто выбрасывает из программы, заранее извиняюсь, плохо разбираюсь в си шарпе, помогите пожалуйста.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Dat
{
int iDay;
int iMonth;
int iYear;
static int[] DayOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public Dat(int Day, int Month, int Year)
{
iDay = Day;
iMonth = Month;
iYear = Year;
CheckOfDate();
}
public void ChangeDay(int d)
{
iDay += d;
CheckOfDate();
}
public void ChangeMonth(int m)
{
iMonth += m;
CheckOfDate();
}
public void ChangeYear(int y)
{
iYear += y;
CheckOfDate();
}
void CheckOfDate()
{
try
{
if (iYear < 0)
{
throw (new SystemException());
}
if ((iMonth < 1) || (iMonth > 12))
{
throw (new SystemException());
}
if ((iDay < 0) || (iDay > DayOfMonth[iMonth - 1]))
{
throw (new SystemException());
}
}
catch (SystemException)
{
Console.WriteLine("Неправильная дата");
}
}
}
class Program
{
static void Main(string[] args)
{
Dat d = new Dat(27, 7, 123);
d.ChangeDay(-3);
d.ChangeMonth(2);
d.ChangeYear(777);
Console.ReadLine();
}
}
}Решение задачи: «Составить описание класса для представления даты, разбор кода»
textual
Листинг программы
Console.WriteLine(d.ShowDate());