Задача на функции. Имея текущую дату в формате г.м.д сделать функиции - C#

Узнай цену своей работы

Формулировка задачи:

Имеем дату, представленную в виде трёх целых чисел: год, месяц, день. Сделать функции, которые возвращают для обычного и високосного года: 1.Количество дней в заданном месяце 2.Количество дней до начала следующего месяца 3.Количество дней до начала следующего года 4.Количество дней с начала года 5. Номер квартала 6. Количество дней до начала следующего квартала 7. Количество дней до предстоящей произвольной даты текущего года 8.Сезон года (зима, весна, лето, осень) 9.Результат проверки даты на начало месяца, начало квартала, заданной дате, перечню заданных дат

Решение задачи: «Задача на функции. Имея текущую дату в формате г.м.д сделать функиции»

textual
Листинг программы
class Date
{
    public int Day { get; set; }
    public int Month { get; set; }
    public int Year { get; set; }
    public bool IsLeapYear
    {
        get
        {
            return (Year % 400 == 0) || (Year % 4 == 0 && Year % 100 != 0);
        }
    }
    public Date(int year, int month, int day)
    {
        if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31)
            throw new Exception();
        Year = year;
        if(day>daysInMonth(month))
        {
            month++;
            day -= daysInMonth(month);
        }
        Month = month;
        Day = day;
    }
    public int DaysInCurrentMonth()
    {
        return daysInMonth(Month);
    }
    int daysInMonth(int m)
    {
        if (m < 1 || m > 12) throw new Exception();
        if (m == 2) return IsLeapYear ? 29 : 28;
        else if (m <= 7) return m % 2 == 0 ? 30 : 31;
        else return m % 2 == 0 ? 31 : 30;
    }
    public int DaysInMonthRemained()
    {
        return DaysInCurrentMonth() - Day;
    }
    public int DayOfYear()
    {
        int result = Day, m = 1;
        while (m <= Month) result += daysInMonth(m++);
        return result;
    }
    public int DaysTillNewYear()
    {
        return (IsLeapYear ? 366 : 365) - DayOfYear();
    }
    public int Quater()
    {
        return Month / 4 + 1;
    }
    public int TillNewQuater()
    {
 
        int tillMonth = Quater() * 4,
            result = DaysInMonthRemained(),
            m = Month;
        while (m < tillMonth) result += daysInMonth(m);
        return result;
    }
    public int TillDate(int month, int day)
    {
        Date d = new Date(Year, month, day);
        return d.DayOfYear() - DayOfYear();
    }
    public Season SeasonOfYear()
    {
        return (Season)((Month + 1 > 12 ? 1 : Month + 1) / 4);
    }
    public enum Season { Winter, Spring, Summer, Autumn };
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы