Найти ошибки в коде, чтобы заработало определение дня недели - 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д