Сравните часы и минуты, используя только если - PullRequest
0 голосов
/ 31 октября 2019

Я получил две переменные, час и минуту. Мне нужно сравнить его с другим ч / м и в зависимости от результатов показать или нет. Пример: 13:30 нужно напечатать "AHORA TOCA". Но только если это время предшествует 20:30. Раньше по часам, но не по минутам.

int hours = 13;
int minutes = 30;
if(hours <= 20){
            if(minutes < 30){
                System.out.println("AHORA TOCA");     
            } 
        }

Это не приводит к печати минут. Итак, что я могу сделать?

1 Ответ

0 голосов
/ 31 октября 2019

Это:

if(hours <= 20){
        if(minutes < 30){

совпадает с

if (hours <= 20 && minutes < 30)

Так что это приведет к тому, что ваше сообщение будет напечатано в первые полчаса каждого часа, до 2030 года включительно.

Если вы хотите проверить, является ли время до 2000 года, вам нужно сопоставить любое время до 2000 года или затем любое время между 2000 и 2030 годами:

if (hours < 20 || (hours == 20 && minutes < 30))

Но это будетлучше использовать правильную библиотеку времени, например java.time:

if (LocalTime.of(hours, minutes).isBefore(LocalTime.of(20, 30)))
...