#java #android-studio
Вопрос:
Допустим, у меня есть заведение, которое открывается в 8 и закрывается в 23, а время 22
Я хочу определить, близко ли это место в мое текущее время с помощью заявления if или любого другого.(Под местами я подразумеваю рестораны и т. Д.) Я пытался 22 <= 23 amp;amp; 22 >= 8
, но думаю, что это неправильно.
Формат времени таков hh.mm
. Это будет иметь double
значение. Например:
Time = 23.59 means 23 hour 59 minutes
Может ли кто-нибудь помочь мне с этим упражнением?
Комментарии:
1. Моя математика неверна или мне кажется правильной? Почему ты думаешь, что это неправильно?
2. Отсутствие уверенности, я думаю, извините
3. Я думаю, что это неправильно, когда это сравнивается с другими местами, которые я пробовал, или что-то в этом роде, пожалуйста, проверьте это и скажите мне, будет ли это работать во всех местах, независимо от того, что, если они будут соответствовать одной и той же технике?
4. Будет ли время указано только
hh
илиhh:mm
также возможно? Что вы подразумеваете под местами?5. Угловые ящики могут быть там. Например, ваше заведение открывается в 8 и закрывается в 00. В этом случае это приведет к неправильному ответу, если вы сразу же сравните его.
Ответ №1:
Вот подход, который вы используете:
1: if opening time < current time < closing time
2: return true
3: else
4: return false
Ваш подход верен для общих тестовых случаев. Однако он не обрабатывает угловые случаи.
Угловые Шкафы
Случай 1:
Inputs:
Opening time: 22.00 Closing time: 4.00 Current time: 23.00
Expected Output:
true
Output:
false
Случай 2:
Inputs:
Opening time: 22.00 Closing time: 4.00 Current time: 2.00
Expected Output:
true
Output:
false
Алгоритм
1: if opening time > closing time and current time < closing time
2: current time = 24
3: if opening time > closing time
4: closing time = 24
5: if opening time < current time < closing time
6: return true
7: else
8: return false
Я тестирую этот алгоритм на нескольких примерах тестов. Это сработало для всех них. Если вы обнаружите какие-либо проблемы, прокомментируйте, и я постараюсь их решить.