Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 13.10.2019
Сообщений: 70
.NET 4.x

Задача с временными промежутками

13.10.2019, 11:51. Показов 2797. Ответов 6

Студворк — интернет-сервис помощи студентам
Поезд прибывает на станцию в a часов b минут и отправляется в c часов d минут. Пассажир пришел на платформу в n часов m минут. Будет ли поезд стоять на платформе? Числа a, b, c, d, n, m -целые, 0 < a ≤ 23, 0 < b ≤ 59, 0 < c ≤ 23, 0 < d ≤ 59, 0 < n ≤ 23, 0 < m ≤ 59.

Я ее решил, только у меня лажа с переходом суток

Допустим поезд приедет в 23:00, а уедет в 3:00 ночи и пассажир придёт на платформу в 1:00 ночи, то программа выдаст что поезда нет на платформе

не знаю как решить этот случай, помогите пожалуйста.
И если можно объясните по подробнее
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.10.2019, 11:51
Ответы с готовыми решениями:

Установить разницу между временными промежутками в минутах и секундах
Задача:Составить программу, в которой вводятся значения двух временных промежутков в часах. Разницу между этими промежутками в минутах и...

Узнать кол-во часов между двумя временными промежутками
Всем привет. Нужна помощь Есть 2 промежутка времени: 1. 03.09.15 13:10:00 2. 02.09.15 11:55:16 Нужно найти кол-во часов между...

Задача с временными интервалами и их сопоставлением
Условие задачи: Из базы данных вытаскиваются 10 дат в формате YYYY-MM-DD. Они описывают временные интервалы. Одна дата - начало...

6
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
13.10.2019, 12:24
Лучший ответ Сообщение было отмечено Th1stle как решение

Решение

Здравствуйте.
Поскольку данных недостаточно, то предусмотрим дополнительные данные - сегодня, завтра.
Соответственно, пассажир дважды приходит проверить - сегодня и завтра. Ему всё равно нечем больше заняться.
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
27
using System;
 
namespace Question2512354
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 23,
                b = 00,
                c = 3,
                d = 00,
                n = 1,
                m = 00;
            var trainComing = new TimeSpan(a, b, 0);
            var trainDeparture = new TimeSpan(c, d, 0);
            if (trainDeparture < trainComing) trainDeparture = new TimeSpan(1, c, d, 0);
 
            var passComing1 = new TimeSpan(n, m, 0);
            var passComing2 = new TimeSpan(1, n, m, 0);
 
            var result = (passComing1 >= trainComing && passComing1 <= trainDeparture)
                || (passComing2 >= trainComing && passComing2 <= trainDeparture);
            Console.WriteLine("Будет ли поезд стоять? " + result);
        }
    }
}
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.10.2019, 13:15
Цитата Сообщение от Th1stle Посмотреть сообщение
у меня лажа с переходом суток
Нормальный случай: если время отправления позже времени прибытия, то поезд стоит на платформе если время визита больше или равно времени прибытия и меньше времени отправления.
Случай с переходом на другие сутки: если время отправления раньше времени прибытия, то поезд стоит на платформе если время визита больше или равно времени прибытия или меньше времени отправления.

Если время прибытия равно времени отправления, то что-то пошло не так в расписании.
2
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
13.10.2019, 13:36
Цитата Сообщение от kolorotur Посмотреть сообщение
Если время прибытия равно времени отправления, то что-то пошло не так в расписании.
Поезд стоял на станции ровно сутки.
Это к вопросу от том, что человечество не зря придумало календарь для подсчета именно дней.

Во избежание подобных коллизий тогда прямо указывают дату/время прибытия и отправления.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.10.2019, 13:40
Цитата Сообщение от amr-now Посмотреть сообщение
Поезд стоял на станции ровно сутки.
Логично.

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

Цитата Сообщение от amr-now Посмотреть сообщение
человечество не зря придумало календарь для подсчета именно дней.
Дык не поспоришь.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
13.10.2019, 13:58
Цитата Сообщение от kolorotur Посмотреть сообщение
и день, в который приходил пассажир, иначе сказать точно нельзя.
Да-да. Вот-вот.
Пассажира заставляют всегда дважды приходить на станцию.
А если пассажир - бабушка 80 лет или инвалид I группы?
Сплошные вредители и враги народа ))

Добавлено через 15 минут
----
По подсказке от kolorotur:
Изменим условие задачи.
"Поезд ежедневно по расписанию отправляется со станции.
Бабушка 80 лет ежедневно ездит на этом поезде в Москву яблоки продавать.
Если она пришла на платформу в n часов m минут, будет ли поезд стоять на платформе?"
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
using System;
 
namespace Question2512354
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 23,
                b = 00,
                c = 3,
                d = 00,
                n = 1,
                m = 00;
 
            var trainComing = new TimeSpan(a, b, 0);
            var trainDeparture = new TimeSpan(c, d, 0);
            var passComing = new TimeSpan(n, m, 0);
 
            var result = trainDeparture >= trainComing
                ? passComing >= trainComing && passComing <= trainDeparture
                : passComing <= trainDeparture;
            Console.WriteLine("Будет ли поезд стоять? " + result);
        }
    }
}
Здесь для упрощения, границы интервалов включим в интервал. Особого практического значения всё равно не имеет.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.10.2019, 14:08
Цитата Сообщение от amr-now Посмотреть сообщение
: passComing <= trainDeparture;
Если поезд стоит с 21:00 до 03:00, а бабушка пришла в 23:00, то будет false.
Проверка на начало интервала все-таки нужна, наверное.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2019, 14:08
Помогаю со студенческими работами здесь

Операции с промежутками времени
Организовал цикл, который работает 3 секунды. Через определенные промежутки времени с помощью IF провожу операцию сложения (буду в...

Stringgrid условия с промежутками
Stringgrid в ячейках 9-го столбца выводятся цифры. Нужно задать условие, если значение ячейки больше 5, но меньше 10, тогда ячейки 6-го...

Работа с промежутками времени
Здравствуйте, гуру Exel. Я не могу понять можно ли VBA Exel выполнить следующее задание: рабочее время работника начинается в 17:20...

Работа с промежутками времени
Ребят нужно решить задачу, помогите пожалуйста, никак не придумаю... Есть робот который работает определённое время, например начало...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru