Время до окончания текущей пары - 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы