![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 11.01.2015
Сообщений: 3
|
![]()
Вроде и задача простая, но что-то я запутался. Есть промежуток времени, заданный в часах, например 17 и 6. Нужно определить, находится ли текущее время в этом промежутке, т.е. 23 находится, а 8 не находится.
Запутался в том, что первое и последнее значения могут быть любыми и простое сравнение на <> не проходит |
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Сначала сделать еще одно сравнение - если левая граница (a) меньше правой (c), то вернуть результат выражения a <= b <= c, иначе "не (c <= b <= a)".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 11.01.2015 в 14:21. |
![]() |
![]() |
![]() |
#3 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Цитата:
Трудность только одна - как Вы определите, какое время относится к одной дате, а какое - к следующей? Если, например, первое число - это всегда МЕНЬШЕЕ время (левая граница), а второе число - всегда БОЛЬШОЕ время (правая граница) и, ВАЖНО, разница во времени всегда МЕНЬШЕ 24 часов (одних суток), тогда задача имеет решение, иначе входных данных недостаточно для решения задачи. |
||
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 11.01.2015
Сообщений: 3
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Если С<A то к С прибавить 24. Если B<A то к B прибавить 24. Дальше сравнение A<=B<=C
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Аватар, уверены?
дано 15-00 и 17-00 8-00 входит в данный интервал? ваш алгоритм нормально отработает? ![]() p.s. на мой взгляд, не зная конкретики (к каким датам относятся заданные часы) задачу решить нельзя. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 912
|
![]()
Все нормально будет, если добавить проверку второго предела не принадлежность к следующим суткам, т.е. если второй предел меньше первого - значит это час уже следующих суток, а значит расстояние до него будет равно 24-первый предел + второй предел!
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 11.01.2015
Сообщений: 3
|
![]()
Аватар, Спасибо, помогло. Решение как всегда оказалось проще. Наверно я просто устал
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
15 и 17 можно рассматривать только как одни сутки, по другому задача не имеет решения. 8 не входит в тот интервал. А вот 22 и 5 как в разных сутках. А вообще по хорошему времени мало - нужна и дата
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,429
|
![]()
Serge_Bliznykov, да вроде нормально.
Вот есть циферблат. Если заданы числа a и с и выполнено неравенство a < с, то проверять нужно (a <= b и b <= c). Если a > c, то есть переход через 0 часов, но этот кусок пирога можно выразить через отрицание и прийти к первому случаю, но с поменявшимися местами пределами.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() Последний раз редактировалось BDA; 11.01.2015 в 16:15. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод записей в промежутке | Nenado | SQL, базы данных | 6 | 25.01.2013 00:30 |
x на промежутке... | NohnaimeR | Помощь студентам | 2 | 08.06.2011 15:41 |
random(На промежутке [-40;20])+array | TheCross94 | Помощь студентам | 8 | 18.10.2010 19:26 |
Генерация даты в заданном промежутке | zver777 | Общие вопросы Delphi | 6 | 09.04.2010 09:33 |
Выборка записей в промежутке нескольких минут | ssdm | SQL, базы данных | 4 | 29.01.2010 15:47 |