Загрузка данных


using System;

namespace TimeManagementApp
{
    public class Time
    {
        private int _hour;
        private int _minute;
        private int _second;

        public int Hour
        {
            get { return _hour; }
            set
            {
                if (value < 0 || value > 23)
                    throw new ArgumentOutOfRangeException("Hour", "Часы должны быть в диапазоне от 0 до 23");
                _hour = value;
            }
        }

        public int Minute
        {
            get { return _minute; }
            set
            {
                if (value < 0 || value > 59)
                    throw new ArgumentOutOfRangeException("Minute", "Минуты должны быть в диапазоне от 0 до 59");
                _minute = value;
            }
        }

        public int Second
        {
            get { return _second; }
            set
            {
                if (value < 0 || value > 59)
                    throw new ArgumentOutOfRangeException("Second", "Секунды должны быть в диапазоне от 0 до 59");
                _second = value;
            }
        }

        public Time()
        {
            _hour = 0;
            _minute = 0;
            _second = 0;
        }

        public Time(int hour, int minute, int second)
        {
            Hour = hour;
            Minute = minute;
            Second = second;
        }

        public void AddHours(int hours)
        {
            int totalHours = _hour + hours;
            _hour = totalHours % 24;
            if (_hour < 0) _hour += 24;
        }

        public void AddMinutes(int minutes)
        {
            int totalSeconds = _hour * 3600 + _minute * 60 + _second + minutes * 60;
            NormalizeTime(totalSeconds);
        }

        public void AddSeconds(int seconds)
        {
            int totalSeconds = _hour * 3600 + _minute * 60 + _second + seconds;
            NormalizeTime(totalSeconds);
        }

        private void NormalizeTime(int totalSeconds)
        {
            const int secondsInDay = 86400;
            totalSeconds %= secondsInDay;
            if (totalSeconds < 0) totalSeconds += secondsInDay;

            _hour = totalSeconds / 3600;
            _minute = (totalSeconds % 3600) / 60;
            _second = totalSeconds % 60;
        }

        public override string ToString()
        {
            return $"{_hour:D2}:{_minute:D2}:{_second:D2}";
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Time defaultTime = new Time();
                Console.WriteLine($"Время по умолчанию: {defaultTime}");

                Time customTime = new Time(10, 30, 45);
                Console.WriteLine($"Установленное время: {customTime}");

                customTime.Hour = 23;
                customTime.Minute = 59;
                Console.WriteLine($"Измененные поля: {customTime}");

                customTime.AddSeconds(120);
                Console.WriteLine($"Добавлено 120 секунд: {customTime}");

                customTime.AddMinutes(10);
                Console.WriteLine($"Добавлено 10 минут: {customTime}");

                customTime.AddHours(5);
                Console.WriteLine($"Добавлено 5 часов: {customTime}");

                Console.WriteLine("Попытка установить некорректное значение (65 минут):");
                customTime.Minute = 65;
            }
            catch (ArgumentOutOfRangeException ex)
            {
                Console.WriteLine($"Ошибка: {ex.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Непредвиденная ошибка: {ex.Message}");
            }

            Console.ReadKey();
        }
    }
}