Загрузка данных
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();
}
}
}