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