Найти ошибки в коде, чтобы заработало определение дня недели - C#

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

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

По введеной дате (день, месяц, год) определить день недели. Дан код (листинг 1) для разработки приложения, которое должно выводить на экран результат в зависимости от даты. Код для приложения "Определению дня недели"
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. try
  12. {
  13. Console.Write("Введите число:");
  14. int a = Convert.ToInt32(Console.ReadLine());
  15. Console.Write("Введите номер месяца:");
  16. int b = Convert.ToInt32(Console.ReadLine());
  17. Console.Write("Введите год:");
  18. int k = Convert.ToInt32(Console.ReadLine());
  19. if (((a < 1) || (a > 31)) || ((b < 1) || (b > 12)) || (k < 1))
  20. {
  21. throw new OverflowException();
  22. }
  23. int n = 0;
  24. int A1 = k / 100;
  25. int A2 = k % 100;
  26. if (((A2 == 0) && (A1 % 4 == 0)) || ((A2 != 0) && (A2 % 4 == 0)))
  27. {
  28. if (b == 1 || b == 2)
  29. { n = 1; }
  30. else { n = 0; }
  31. }
  32. else
  33. {
  34. if (b == 1 || b == 2)
  35. { n = 2; }
  36. else { n = 0; }
  37. }
  38. int c = 0;
  39. if (k > 2000)
  40. c = 1;
  41. c = c + (int)(365.25 * A2) + (int)(30.65 * b) + a + n;
  42. int s = c % 7;
  43. switch (s)
  44. {
  45. case 0: Console.WriteLine("Среда"); break;
  46. case 1: Console.WriteLine("Четверг"); break;
  47. case 2: Console.WriteLine("Пятница"); break;
  48. case 3: Console.WriteLine("Суббота"); break;
  49. case 4: Console.WriteLine("Воскресенье"); break;
  50. case 5: Console.WriteLine("Понедельник"); break;
  51. case 6: Console.WriteLine("Вторник"); break;
  52. }
  53. }
  54. catch
  55. {
  56. Console.WriteLine("Ошибка");
  57. }
  58. }
  59. }
  60. }

Решение задачи: «Найти ошибки в коде, чтобы заработало определение дня недели»

textual
Листинг программы
  1.                                 DateTime DT;
  2.                     int year, mounth, day;
  3.                     int dayMax;
  4.  
  5.                     do
  6.                     {
  7.  
  8.                         do
  9.                             Console.WriteLine("Введите год:");
  10.                         while (!int.TryParse(Console.ReadLine(), out year) || year < 0);
  11.  
  12.                         do
  13.                             Console.WriteLine("Введите месяц:");
  14.                         while (!int.TryParse(Console.ReadLine(), out mounth) || mounth < 0 || mounth > 12);
  15.  
  16.  
  17.                         DT = new DateTime(year, mounth, 1);
  18.  
  19.                         dayMax = DT.AddMonths(1).AddDays(-1).Day;
  20.  
  21.  
  22.  
  23.                         do
  24.                             Console.WriteLine("Введите день:");
  25.                         while (!int.TryParse(Console.ReadLine(), out day) || day < 1 || day > dayMax);
  26.  
  27.  
  28.                         string result = DT.DayOfWeek.ToString();
  29.  
  30.                         Console.WriteLine("День недели:" + result);
  31.                     }
  32.                     while (Console.ReadKey().Key != ConsoleKey.Escape);

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут