Определить, каким днем недели является дата, заданная в виде: число, месяц, год - C#
Формулировка задачи:
Определить, каким днем недели является дата, заданная в виде: число, месяц, год.
Указание. Используем метод Ленуара:
1) вычислить величину N:
если месяц – январь или февраль високосного года, то установить N=1;
если месяц январь или февраль обычного года, то установить N=2;
в других случаях установить N=0.
Чтобы узнать, является ли год високосным, можно действовать следующим образом:
Разложить год на 2 части: А1 – 2 старшие цифры, А2 – 2 младшие цифры.
Если А2 = 0 и А1 делится на 4, то год високосный;
если А20, то год високосный, если А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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д