2012-05-27 60 views
1

這是我的代碼...如果和其他statments的Java試圖阻止一項聲明作業

private void updateDisplay() { 
    if(hours.getValue() == 0){ 
     hours.setValue(12); 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " am"; 
    } 
    else if(hours.getValue() < 12){ 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " am"; 
    } 
    else if(hours.getValue() == 12){ 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " pm"; 
    } 
    else if(hours.getValue() < 24){ 
     displayString = hours.getValue() - 12 + ":" + 
     minutes.getDisplayValue() + " pm"; 
    } 
} 

所以基本上這是一個時鐘我嘗試12小時格式顯示。當它從11改變: 59pm

我得到它說的是上午12:00,但一旦我timeTick()它一旦去12:01 pm因爲如果hours.getValue == 0,那麼我們使它12,但後來在方法中它if hours.getValue()== 12使它成爲PM。我想避免如此。在維持相當簡單的java的同時,任何想法?

已解決謝謝。而不是setValue(12)我剛加了12個hours.getValue()== 0

回答

1

爲什麼不只是當小時等於12時做什麼?

實際上不要設置小時數值,只需在打印時添加12。

+0

你說得對,我已經在下午使用它了我不知道爲什麼我沒有看到它。非常感謝你的朋友 – SmilesNLulz

0

使用24小時時鐘內部,但使用

+0

我不喜歡你的意思......而且因爲它的任務我不能真正走出我們想要學習的東西。你說得對,雖然內部是24小時,但我只需要把它顯示爲12 ..我可以通過這個12:01。我把我的價值設置爲12,但下次我顯示它會看到12,並把它拿下來,它不會在這個時候... – SmilesNLulz

+0

'mod'是一個部門的其餘部分,在Java中使用''%符號。 '4%3 = 1; 24%12 = 0' – mastaH

+0

唯一的問題是,24小時=凌晨0點,但是12點。同樣是12小時。它需要額外的處理(OP已有的方式)。 –

0

假設hours.getValue()返回int「MOD12小時」顯示其值,可以做hours.getValue()/13 == 0 ? hours.getValue() + ":" + minutes.getDisplayValue() + " AM": hours.getValue() - 12 + ":" + minutes.getDisplayValue() + " PM";。該表達式稱爲三元運算符,而int數據類型則修剪十進制結果。

我更新了它來完成一切。我希望你喜歡1班。