Классы. Проверить даты на правильный ввод - C#

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

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

Нужно, чтобы программа делала проверку на правильность вводимого дня в месяце( например, в феврале -29 дней, в апреле - 30 и т.д) не могу сделать
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class DATA
    {
       protected
       int day, mec, god; // дата, месяц, год
 
        public
            //конструктор по-умолчанию
        DATA() { day = 23; mec = 02; god = 2015; }
        //конструктор с параметрами
        DATA(int day1, int mec1, int god1)
        { day = day1; mec = mec1; god = god1; }
        //конструктор копирования
 
        //метод для ввода
        public DATA vvod()
        {
            int day1, mec1, god1; bool корректныйВвод;
            DATA t = new DATA();
            Console.WriteLine("Введите дату:\n");
            do
            {
                Console.Write("День - ");
                корректныйВвод = int.TryParse(Console.ReadLine(), out day1);
 
                if (!(корректныйВвод == true && day1 > 0 && day1 < 32))
                    Console.WriteLine("Неверный ввод - вводить от 1 до 31 попробуйте ещё.");
            } while (!(корректныйВвод == true && day1 > 0 && day1 < 32));
 
            do
            {
                Console.Write("Месяц - ");
                корректныйВвод = int.TryParse(Console.ReadLine(), out mec1);
            
                if (!(корректныйВвод == true && mec1 > 0 && mec1 < 13))
                    Console.WriteLine("Неверный ввод - вводить от 1 до 12. Попробуйте ещё.");
            } while (!(корректныйВвод == true && mec1 > 0 && mec1 < 13));
            
            do
            {
                Console.Write("Год - ");
                корректныйВвод = int.TryParse(Console.ReadLine(), out god1);
 
                if (!(корректныйВвод == true && god1 > 0))
                    Console.WriteLine("Неверный ввод, попробуйте ещё.");
            } while (!(корректныйВвод == true && god1 > 0));
            day = day1; mec = mec1; god = god1;
            return t;
        }
        //метод для вывода
        public void vivod()
        { Console.WriteLine("\nДата: {0}.{1}.{2}", day, mec, god); }
 
        //методы изменения
        public int d(int day2)
        {
            day = day2;
            return day;
        }
        public int m(int mec2)
        {
            mec = mec2;
            return mec;
        }
        public int g(int god2)
        {
            god = god2;
            return god;
        }
    }
    //тело основной программы
    class Program
    {
        static void Main(string[] args)
        {
            DATA x = new DATA();
            x.vvod();
            x.vivod();
            Console.WriteLine("\n");
            for (; ; )
            {
                Console.Write("\nЖелаете ли что-нибудь изменить: \n 1 - день \n 2 - месяц \n 3 - год \n  \nВведите цифру - ");
                string c = Console.ReadLine();
                int num = Convert.ToInt32(c);//пункт изменения
                switch (num)
                {
                    //день
                    case 1:
                        {
                            int day2; bool корректныйВвод;
                            do
                            {
                                Console.Write("Введите день - ");
                                корректныйВвод = int.TryParse(Console.ReadLine(), out day2);
 
                                if (!(корректныйВвод == true && day2 > 0 && day2 <32))
                                    Console.WriteLine("Неверный ввод, попробуйте ещё.");
                            } while (!(корректныйВвод == true && day2 > 0 && day2 < 32));
                            x.d(day2);
                            Console.Write("\nС изменённым днем");
                            x.vivod();
                            break;
                        }  
                 //месяц
                    case 2:
                        {
                            int mec2; bool корректныйВвод;
                            do
                            {
                                Console.Write("Введите месяц - ");
                                корректныйВвод = int.TryParse(Console.ReadLine(), out mec2);
 
                                if (!(корректныйВвод == true && mec2 > 0 && mec2 < 13 ))
                                    Console.WriteLine("Неверный ввод, попробуйте ещё.");
                            } while (!(корректныйВвод == true && mec2 > 0 && mec2 < 13));
                            x.m(mec2);
                            Console.Write("\nС изменённым месяцом");
                            x.vivod();
                            break;
                        }
                    //год
                    case 3:
                        {
                            int god2; bool корректныйВвод;
                            do
                            {
                                Console.Write("Введите год - ");
                                корректныйВвод = int.TryParse(Console.ReadLine(), out god2);
 
                                if (!(корректныйВвод == true && god2 > 0))
                                    Console.WriteLine("Неверный ввод, попробуйте ещё.");
                            } while (!(корректныйВвод == true && god2 > 0));
                            x.g(god2);
                            Console.Write("\nС изменённым годом");
                            x.vivod();
                            break;
                        }
                    default:
                        Console.WriteLine("Дата введена верно");
                        break;
                }
            }
 
            Console.ReadKey();
        }
    }
}

Решение задачи: «Классы. Проверить даты на правильный ввод»

textual
Листинг программы
DateTime dt;
if (DateTime.TryParse("31.02.2015", out dt)) Console.WriteLine("Корректная дата");
else Console.WriteLine("Не корректная");

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


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

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

14   голосов , оценка 3.857 из 5
Похожие ответы