Составить описание класса для представления времени. Ошибка - 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;
}
}
}
}