Найти ошибки в коде, чтобы заработало определение дня недели - C#
Формулировка задачи:
По введеной дате (день, месяц, год) определить день недели.
Дан код (листинг 1) для разработки приложения, которое должно выводить на экран результат в зависимости от даты.
Код для приложения "Определению дня недели"
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { try { Console.Write("Введите число:"); int a = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите номер месяца:"); int b = Convert.ToInt32(Console.ReadLine()); Console.Write("Введите год:"); int k = Convert.ToInt32(Console.ReadLine()); if (((a < 1) || (a > 31)) || ((b < 1) || (b > 12)) || (k < 1)) { throw new OverflowException(); } int n = 0; int A1 = k / 100; int A2 = k % 100; if (((A2 == 0) && (A1 % 4 == 0)) || ((A2 != 0) && (A2 % 4 == 0))) { if (b == 1 || b == 2) { n = 1; } else { n = 0; } } else { if (b == 1 || b == 2) { n = 2; } else { n = 0; } } int c = 0; if (k > 2000) c = 1; c = c + (int)(365.25 * A2) + (int)(30.65 * b) + a + n; int s = c % 7; switch (s) { case 0: Console.WriteLine("Среда"); break; case 1: Console.WriteLine("Четверг"); break; case 2: Console.WriteLine("Пятница"); break; case 3: Console.WriteLine("Суббота"); break; case 4: Console.WriteLine("Воскресенье"); break; case 5: Console.WriteLine("Понедельник"); break; case 6: Console.WriteLine("Вторник"); break; } } catch { Console.WriteLine("Ошибка"); } } } }
Решение задачи: «Найти ошибки в коде, чтобы заработало определение дня недели»
textual
Листинг программы
DateTime DT; int year, mounth, day; int dayMax; do { do Console.WriteLine("Введите год:"); while (!int.TryParse(Console.ReadLine(), out year) || year < 0); do Console.WriteLine("Введите месяц:"); while (!int.TryParse(Console.ReadLine(), out mounth) || mounth < 0 || mounth > 12); DT = new DateTime(year, mounth, 1); dayMax = DT.AddMonths(1).AddDays(-1).Day; do Console.WriteLine("Введите день:"); while (!int.TryParse(Console.ReadLine(), out day) || day < 1 || day > dayMax); string result = DT.DayOfWeek.ToString(); Console.WriteLine("День недели:" + result); } while (Console.ReadKey().Key != ConsoleKey.Escape);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д