Составить описание класса для представления времени. Ошибка - C#

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

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

Составить описание класса для представления времени. Предусмотреть возможности установки времени и изменения его отдельных полей (час, минута, секунда) с проверкой допустимости вводимых значений. В случае недопустимых значений полей выбрасываются исключения. Создать методы изменения времени на заданное количество часов, минут и секунд. Написать программу, демонстрирующую все разработанные элементы класса.
using System;
 
namespace ConsoleApplication27
{
 
    class DateTim
    {
        public int hour;
        public int minute;
        public int second;
 
        public void chasy()
        {
            DateTim dat1 = new DateTim();
            Console.WriteLine("Нажмите enter,чтобы изменить часы");
            Console.ReadKey();
            int r = 5;
            dat1.hour = dat1.hour + r;
            Console.WriteLine("Новое время" + dat1.hour + ":" + dat1.minute + ":" + dat1.second);
            Console.ReadKey();
        }

    }
 
    class Program
    {
 
        static void Main(string[] args)
        {
            DateTim dat1 = new DateTim();
            Console.WriteLine("Что будем делать: 1.Вывести текущее время 2.Ввод времени");
            Console.Write("Введите цифру: ");
            string s = Console.ReadLine();
            int n = int.Parse(s);
            switch (n)
            {
                case 1:
                    String current_time_str = DateTime.Now.ToString("HH:mm:ss");
                    Console.WriteLine(current_time_str);
                    Console.ReadKey();
                    break;
                case 2:

                    Console.WriteLine("Введите новое время в формате hh:mm:ss", dat1.hour, dat1.minute, dat1.second);
                    Console.ReadLine();
                    if (dat1.hour <= 24 & dat1.minute <= 59 & dat1.second <= 59)
                    {
                        Console.WriteLine("Введенное время - " + dat1.hour + ":" + dat1.minute + ":" + dat1.second);
                        Console.ReadKey();
                    }
 
                    break;
             
            }
        }
    }
}
Не работает изменение нового времени

Решение задачи: «Составить описание класса для представления времени. Ошибка»

textual
Листинг программы
    public class MyDateTime
    {
        int Hour;
        int Minute;
        int Second;
 
        public void SetHour(int hour)
        {
            Hour = hour;
        }
 
        public void SetMinute(int minute)
        {
            Minute = minute;
        }
 
        public void SetSecond(int second)
        {
            Second = second;
        }
 
        public void SetTime(int hour, int minute, int second)
        {
            SetHour(hour);
            SetMinute(minute);
            SetSecond(second);
        }
 
        public string ShowTime()
        {
            return "На моих часах время: " + Hour + ":" + Minute + ":" + Second;
        }
    }
    internal class Program
    {
 
        private static void Main(string[] args)
        {
            string s = "";
            Console.WriteLine("Программа 'Время'");
            var myTime = new MyDateTime();
            while (s != "0")
            {
                Console.WriteLine();
                Console.WriteLine("1. Вывести текущее время");
                Console.WriteLine("2. Ввод времени");
                Console.WriteLine("3. Показать время");
                Console.WriteLine("0. Выход");
                Console.Write("Введите цифру: ");
 
                s = Console.ReadLine();
                if (s != "1" && s != "2" && s != "3" && s != "0")
                {
                    Console.Write("Неправильный ввод");
                    continue;
                }
 
                Console.WriteLine();
 
                int n = int.Parse(s);
                switch (n)
                {
                    case 1:
                        String current_time_str = DateTime.Now.ToString("HH:mm:ss");
                        Console.WriteLine("Текущее время " + current_time_str);
                        break;
                    case 2:
                        Console.WriteLine("Введите новое время в формате hh:mm:ss");
                        var newTime = Console.ReadLine();
                        var newTimeArray = newTime.Split(':'); // возможен null
 
                        // Можно все проверить на корректность через TryParse
                        var hour = Int32.Parse(newTimeArray[0]);
                        var minute = Int32.Parse(newTimeArray[1]);
                        var second = Int32.Parse(newTimeArray[2]);
 
                        if (hour <= 24 & minute <= 59 & second <= 59)
                        {
                            myTime.SetTime(hour, minute, second);
                            Console.WriteLine("Окей, запомнил");
                        }
                        else
                            Console.WriteLine("Такого времени не бывает!");
 
                        break;
                    case 3:
                        Console.WriteLine(myTime.ShowTime());
                        break;
                }
            }
        }
    }

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


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

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

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