2013-11-11 8 views
1

Изучение Java моя текущая проблема связана с инструкцией «else» ниже. В результате я ищу, если я типа в течение 3 часов и 55 минут: «пяти до четырех»Рассчитать час плюс один

С кодом ниже я получаю: Пожалуйста, введите часы (от 1 до 12) : Пожалуйста, введите минуты (от 1 до 60): пяти до трех

Может кто-то пожалуйста, скажите мне, что я делаю неправильно? (Спасибо)

// actual calcuations 

    if(minuteValue==0){ 
     result = hourPart + minutePart + " o'clock"; // eg two o'clock (the String o'clock defined later in the minute values) 
    } 
    else if (minuteValue <= 30){ 
     result = minutePart + " past " + hourPart; // eg ten past five 
    } 
    else 
    { 
     int remainingtime = 60 - minuteValue; 
     int nexthr = hourValue + 1; 
     if(nexthr==13) nexthr = 1; 

     result = getHourString(remainingtime) + " to " + hourPart; // eg twenty to five 

    } 

    return result; 
+0

Добавьте 1 к 'hourPart' перед тем конкатенации. –

+1

показать нам полный код. довольно уверен 'getHourString (int)' isnt функция jdk. – Woot4Moo

+0

У вас есть 3 разных переменных, удерживающих час: hourValue, hourPart и nexthr. Я не уверен, какая разница между hourPart и hourValue, но уверен, что вы инициализируете nexthr, но никогда не используете его. –

ответ

1

Ну, прежде всего вы не используете nexthr:

result = getHourString(remainingtime) + " to " + hourPart; //where's nexthr? 

Во-вторых вы получили способ много вещей происходит здесь. Просто имейте hourValue и minuteValue, чтобы отслеживать введенное время. Изменение minutePart к minuteValue и hourPart к hourValue и вы сделали:

String result; 
int minuteValue = 55; 
int hourValue = 9; 

if(minuteValue==0){ 
    result = hourValue + minuteValue + " o'clock"; // eg two o'clock (the String o'clock defined later in the minute values) 
} 
else if (minuteValue <= 30){ 
    result = minuteValue + " past " + hourValue; // eg ten past five 
} 
else 
{ 
    int remainingtime = 60 - minuteValue; 
    int nexthr = hourValue + 1; 
    if(nexthr==13) nexthr = 1; 
    result = remainingtime + " to " + nexthr; // eg twenty to five 

} 

System.out.println(result); 

Результат: 5 to 10

+0

Спасибо, Даниэль Фигероа, я сделал некоторый прогресс! – Rouxster

+0

** Желаемый результат: ** * Пожалуйста, введите часы (от 1 до 12): Пожалуйста, введите минут (от 1 до 60): Quater до четырех * ** Это код что исправил это для меня: ** \t \t \t int Осталось время = 60 - minuteValue; \t \t \t int nexthr = hourValue + 1; \t \t \t if (nexthr == 13) nexthr = 1; \t \t \t result = getMinuteString (оставшееся время) + "to" + getHourString (nexthr); // например, от двадцати до пяти \t \t \t // result = getHourString (оставшееся время) + "до" + hourPart; // например, двадцать пять – Rouxster

0
String result; 
int minuteValue = 55; 
int hourValue = 9; 

if(minuteValue==0){ 
    result = hourValue + minuteValue + " o'clock"; // eg two o'clock (the String o'clock defined later in the minute values) 
} 
else if (minuteValue <= 30){ 
    result = minuteValue + " past " + hourValue; // eg ten past five 
} 
else 
{ 
    int remainingtime = 60 - minuteValue; 
    int nexthr = hourValue + 1; 
    if(nexthr==13) nexthr = 1; 
    result = remainingtime + " to " + nexthr; // eg twenty to five 

} 

System.out.println(result); 
Смежные вопросы