Умова:
Скласти опис класу для представлення дати. Передбачити можливість
установки дати та зміни її окремих полів (день, місяць, рік) з перевіркою
допустимості введених значень. В випадку недопустимих значень полів повинно
оброблятись виключення. Створити метод зміни дати на задану кількість днів,
місяців та років.
Відповідь:
using System;
public class Date
{
private int day;
private int month;
private int year;
public Date(int day, int month, int year)
{
SetDate(day, month, year);
}
public void SetDate(int day, int month, int year)
{
if (!IsValidDate(day, month, year))
{
throw new ArgumentException("Недійсна дата");
}
this.day = day;
this.month = month;
this.year = year;
}
public void ChangeDate(int days, int months, int years)
{
int newDay = day + days;
int newMonth = month + months;
int newYear = year + years;
SetDate(newDay, newMonth, newYear);
}
private bool IsValidDate(int day, int month, int year)
{
// Виконати перевірки на допустимі значення дня, місяця і року
// Наприклад, перевірити, що день лежить в межах 1-31, місяць в межах 1-12 і рік не від'ємний
// Повернути true, якщо дата дійсна, інакше - false
}
}
Цей клас Date має конструктор для ініціалізації дати і метод SetDate для зміни дати з перевіркою її допустимості. Якщо введені значення недійсні, генерується виключення ArgumentException.
Також в класі є метод ChangeDate, який дозволяє змінити дату на задану кількість днів, місяців і років. Цей метод також використовує метод SetDate для перевірки та встановлення нової дати.
Будь ласка, зверніть увагу, що код потребує додаткової роботи, щоб виконувати всі необхідні перевірки на допустимі значення дати. Ви повинні додати відповідний код в метод IsValidDate для виконання цих перевірок.