Определить, каким днем недели является дата, заданная в виде: число, месяц, год - C#

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

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

Определить, каким днем недели является дата, заданная в виде: число, месяц, год. Указание. Используем метод Ленуара: 1) вычислить величину N: если месяц – январь или февраль високосного года, то установить N=1; если месяц январь или февраль обычного года, то установить N=2; в других случаях установить N=0. Чтобы узнать, является ли год високосным, можно действовать следующим образом: Разложить год на 2 части: А1 – 2 старшие цифры, А2 – 2 младшие цифры. Если А2 = 0 и А1 делится на 4, то год високосный; если А20, то год високосный, если А2 делится на 4. 2) Вычислить код для С по формуле С = целое (365,25*А2) + целое(30б56*месяц) + день + N 3) Вычислить остаток S от деления С на 7; Если S=0, то день недели – среда; Если S=1, то день недели – четверг; Если S=6, то день недели – вторник. _____ Помогите пожалуйста! Хотя бы просто с чего начать ... ?

Решение задачи: «Определить, каким днем недели является дата, заданная в виде: число, месяц, год»

textual
Листинг программы
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(GetDayOfWeek());
    }
    static DayOfWeek GetDayOfWeek(int day, int month, int year)
    {
        if (day > 31 || day < 1)
            throw new Exception("Invalid day");
        else if (month > 12 || month < 1)
            throw new Exception("Invalid month");
        else
        {
            int A1 = year / 100, A2 = year % 100;
            bool leap = A2 == 0 ? A1 % 4 == 0 : A2 % 4 == 0;
            int N = month < 3 ? leap ? 1 : 2 : 0;
            int C = (int)(365.25 * A2) + (int)(30.56 * month) + day + N + 2;
            return (DayOfWeek)(C % 7);
        }
    }
    static DayOfWeek GetDayOfWeek(DateTime date)
    {
        return GetDayOfWeek(date.Day, date.Month, date.Year);
    }
    static DayOfWeek GetDayOfWeek()
    {
        return GetDayOfWeek(DateTime.Now);
    }
}

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


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

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

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