Загрузка данных
public MainWindow()
{
InitializeComponent();
_timeObject = new Time();
UpdateDisplay();
}
private void UpdateDisplay()
{
DisplayTime.Text = _timeObject.ToString();
DisplayError.Text = string.Empty;
}
private void BtnSetTime_Click(object sender, RoutedEventArgs e)
{
try
{
_timeObject.Hour = int.Parse(InputHour.Text);
_timeObject.Minute = int.Parse(InputMinute.Text);
_timeObject.Second = int.Parse(InputSecond.Text);
UpdateDisplay();
}
catch (Exception ex)
{
DisplayError.Text = ex.Message;
}
}
private void BtnAddHour_Click(object sender, RoutedEventArgs e)
{
try
{
_timeObject.AddHours(int.Parse(InputValue.Text));
UpdateDisplay();
}
catch (Exception ex)
{
DisplayError.Text = ex.Message;
}
}
private void BtnAddMinute_Click(object sender, RoutedEventArgs e)
{
try
{
_timeObject.AddMinutes(int.Parse(InputValue.Text));
UpdateDisplay();
}
catch (Exception ex)
{
DisplayError.Text = ex.Message;
}
}
private void BtnAddSecond_Click(object sender, RoutedEventArgs e)
{
try
{
_timeObject.AddSeconds(int.Parse(InputValue.Text));
UpdateDisplay();
}
catch (Exception ex)
{
DisplayError.Text = ex.Message;
}
}
}
}
Djdjd
using System;
using System.Windows;
namespace TimeWpfApp
{
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("Часы должны быть от 0 до 23");
_hour = value;
}
}
public int Minute
{
get { return _minute; }
set
{
if (value < 0 || value > 59)
throw new ArgumentOutOfRangeException("Минуты должны быть от 0 до 59");
_minute = value;
}
}
public int Second
{
get { return _second; }
set
{
if (value < 0 || value > 59)
throw new ArgumentOutOfRangeException("Секунды должны быть от 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)
{
long totalSeconds = (long)_hour * 3600 + _minute * 60 + _second + (long)minutes * 60;
Normalize(totalSeconds);
}
public void AddSeconds(int seconds)
{
long totalSeconds = (long)_hour * 3600 + _minute * 60 + _second + seconds;
Normalize(totalSeconds);
}
private void Normalize(long totalSeconds)
{
const int secondsInDay = 86400;
totalSeconds %= secondsInDay;
if (totalSeconds < 0) totalSeconds += secondsInDay;
_hour = (int)(totalSeconds / 3600);
_minute = (int)((totalSeconds % 3600) / 60);
_second = (int)(totalSeconds % 60);
}
public override string ToString()
{
return $"{_hour:D2}:{_minute:D2}:{_second:D2}";
}
}
public partial class MainWindow : Window
{
private Time _timeObject;