Найти ошибки в коде, чтобы заработало определение дня недели - 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);

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


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

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

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