Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
177 / 176 / 38
Регистрация: 16.06.2010
Сообщений: 511
1

Написать функцию которая получает два параметра – плановое и фактическое время прибытия поезда в формате часы:минуты

12.01.2012, 17:35. Просмотров 1447. Ответов 4
Метки нет (Все метки)

Предложите свое решение микрозадачи :
написать функцию которая получает два параметра – плановое время прибытия поезда в формате часы:минуты, фактическое время прибытия поезда в формате часы:минуты, а возвращает в качестве результата одну из строк: «Прибытие вовремя», «Опоздание на N минут», «Опережение на N минут», где N – кол-во минут опережения/опоздания.

Вот, мой вариант:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static string IncomingTrain(string scheduledTime, string actualTime)
        {
            try
            {
                TimeSpan scheduled = TimeSpan.Parse(scheduledTime);
                TimeSpan actual = TimeSpan.Parse(actualTime);
                int countHours = (scheduled - actual).Hours;
                int countMinutes = (scheduled - actual).Minutes + countHours * 60;
                if (countMinutes == 0) return "Прибытие вовремя";
                if (countMinutes < 0) return "Опоздание на " + Math.Abs(countMinutes) + " минут";
                else return "Опережение на " + countMinutes + " минут";
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return null;
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2012, 17:35
Ответы с готовыми решениями:

Время. Дано количество секунд. Вычислить время в формате часы/минуты/секунды.
Написать программу, которая требует от пользователя ввести к- секунду и чтобы программа считала...

Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Составьте программу, которая в зависимости от входных данных переводит часы и минуты в...

Функция, которая получает два параметра и возвращает результат деления первого параметра на второй
Тут такая задача: написать функцию, которая получает два параметра тип unsigned short int и...

Функция получает время в виде трех целых аргументов (часы, минуты, секунды) и возвращает количество секунд с момента, ко
Функция получает время в виде трех целых аргументов (часы, минуты, секунды) и возвращает количество...

4
675 / 589 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
12.01.2012, 17:47 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public static string IncomingTrain(string scheduledTime, string actualTime)
        {
            try
            {
                DateTime dt1 = Convert.ToDateTime(scheduledTime);
                DateTime dt2 = Convert.ToDateTime(actualTime);
                if (dt1 == dt2)
                {
                    return "Прибытие вовремя";
                }
                TimeSpan ts = dt2 - dt1;
                double minutes=ts.TotalMinutes;
                if (minutes < 0)
                { 
                return "Опережение на " + minutes + " минут";
                }
                else{
                return "Опоздание на " + minutes + " минут";
                }                
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                return null;
            }
        }
1
177 / 176 / 38
Регистрация: 16.06.2010
Сообщений: 511
12.01.2012, 18:46  [ТС] 3
Бельфегор, при входных параметрах ( "23:50","00:10") результат что у вас и что у меня одинаковый, опережение на 1420 минут, а мне говорят что должно быть опоздание на 20 минут, с чем я не согласен, так как в таком случае прибытие поезда будет в следующем дне, а так как про дни в условии задачи не упоминалось , то я подразумевал время одних суток от 00:00 до 00:00. Как вы считаете корректо ли работает функция при такой постановки задачи ?
0
675 / 589 / 138
Регистрация: 08.05.2009
Сообщений: 1,098
12.01.2012, 19:12 4
[irurg;2380632]Бельфегор, при входных параметрах ( "23:50","00:10") результат что у вас и что у меня одинаковый, опережение на 1420 минут, а мне говорят что должно быть опоздание на 20 минут, с чем я не согласен, так как в таком случае прибытие поезда будет в следующем дне, а так как про дни в условии задачи не упоминалось , то я подразумевал время одних суток от 00:00 до 00:00. Как вы считаете корректо ли работает функция при такой постановки задачи ?
согласен с вами. Дата не вводится, только время. С такой постановкой такое решение актуально.
1
Эксперт .NET
13734 / 10618 / 2796
Регистрация: 17.09.2011
Сообщений: 18,018
12.01.2012, 23:18 5
[irurg;2380632]мне говорят что должно быть опоздание на 20 минут
Значит сделайте предположение, что пользователь, вводящий данные, никогда не ошибается и если фактическое время прибытия меньше планируемого, то автоматом считать это за следующий день.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2012, 23:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) когда совпадут минуты и часы
Даны целые числа m (часы) и n (минуты) .Определить наименьшее время (в минутах) до того момента ...

Вывести время, через которое второй поезд прибудет в конечный пункт в формате часы минуты
Два поезда из разных населенных пунктов одновременно выезжают навстречу друг другу и через t часов...

Написать функцию, которая получает в качестве аргументов два одномерных массива и формирует из них третий
Написать функцию, которая получает в качестве аргументов два одномерных массива и формирует из них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.