Составить описание класса для представления даты, разбор кода - 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());
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д