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