Время до окончания текущей пары - C#
Формулировка задачи:
подскажите как решить проблему с датами
Реализовать программу, которая отображает временя до окончания текущей пары. Программа так же должна показывать номер текущей пары от 1-ой до 4-ой
Пример работы программы:
Текущее время: 9:20
Вывод программы: Сейчас идёт 2 пара, до окончания осталось 15 минут
вот что получается
хотелось бы чтобы не пришлось в первых строках кода вводить время так как его надо каждый день менять чтобы программа работала, во вторых появляется несоответствие типов данных при сравнении дат
TimeSpan nach1 = new DateTime(2015, 9, 19, 08, 00, 00).TimeOfDay; TimeSpan kon1 = new DateTime(2015, 9, 19, 09, 35, 00).TimeOfDay; TimeSpan nach2 = new DateTime(2015, 9, 19, 09, 45, 00).TimeOfDay; TimeSpan kon2 = new DateTime(2015, 9, 19, 11, 20, 00).TimeOfDay; TimeSpan nach3 = new DateTime(2015, 9, 19, 11, 30, 00).TimeOfDay; TimeSpan kon3 = new DateTime(2015, 9, 19, 13, 35, 00).TimeOfDay; TimeSpan nach4 = new DateTime(2015, 9, 19, 13, 35, 00).TimeOfDay; TimeSpan kon4 = new DateTime(2015, 9, 19, 15, 10, 00).TimeOfDay; TimeSpan vremy= DateTime.Now.TimeOfDay; int para = 0; if (Convert.ToDateTime(vremy) < Convert.ToDateTime(kon1)) { para = 1; TimeSpan ost = Convert.ToDateTime(vremy) - Convert.ToDateTime(kon1); Console.WriteLine("Текущее время: {0}:{1}", vremy.Hours, vremy.Minutes); Console.WriteLine("Вывод программы: Сейчас идёт {0} пара, до окончания осталось {1} минут", para, ost); } else if (Convert.ToDateTime(vremy) < Convert.ToDateTime(kon2)) { para = 2; TimeSpan ost = Convert.ToDateTime(vremy) - Convert.ToDateTime(kon2); Console.WriteLine("Текущее время: {0}:{1}", vremy.Hours, vremy.Minutes); Console.WriteLine("Вывод программы: Сейчас идёт {0} пара, до окончания осталось {1} минут", para, ost); } else if (Convert.ToDateTime(vremy) < Convert.ToDateTime(kon3)) { para = 3; TimeSpan ost = Convert.ToDateTime(vremy) - Convert.ToDateTime(kon3); Console.WriteLine("Текущее время: {0}:{1}", vremy.Hours, vremy.Minutes); Console.WriteLine("Вывод программы: Сейчас идёт {0} пара, до окончания осталось {1} минут", para, ost); } else if (Convert.ToDateTime(vremy) < Convert.ToDateTime(kon4)) { para = 4; TimeSpan ost = Convert.ToDateTime(vremy) - Convert.ToDateTime(kon4); Console.WriteLine("Текущее время: {0}:{1}", vremy.Hours, vremy.Minutes); Console.WriteLine("Вывод программы: Сейчас идёт {0} пара, до окончания осталось {1} минут", para, ost); } else { Console.WriteLine("пары кончились"); } Console.ReadKey();
Решение задачи: «Время до окончания текущей пары»
textual
Листинг программы
TimeSpan[,] timetable = new TimeSpan[,] { { new TimeSpan(08, 00, 00), new TimeSpan(09, 35, 00) }, { new TimeSpan(09, 45, 00), new TimeSpan(11, 20, 00) }, { new TimeSpan(11, 30, 00), new TimeSpan(13, 35, 00) }, { new TimeSpan(13, 35, 00), new TimeSpan(15, 10, 00) }, }; //TimeSpan timeOfDay = DateTime.Now.TimeOfDay; TimeSpan timeOfDay = new TimeSpan(8, 11, 0); if (timeOfDay < timetable[0,0]) { Console.WriteLine("Учебный день еще не начался"); } else if (timeOfDay > timetable[timetable.GetLength(0)-1,1]) { Console.WriteLine("Учебный день закончился"); } else { Console.WriteLine("Текущее время: {0:00}:{1:00}", timeOfDay.Hours, timeOfDay.Minutes); for (int para=0; para<timetable.GetLength(0); para++) { if (timeOfDay>=timetable[para,0] && timeOfDay<timetable[para,1]) { TimeSpan timeLeft = timetable[para,1] - timeOfDay; Console.WriteLine("Вывод программы: Сейчас идёт {0} пара, до окончания осталось {1} минут", para+1, timeLeft.TotalMinutes); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д