1

これは私のコードです...

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時59分から変更された場合

私は12:00amと言うようになりますが、一度timeTick()すると、if hours.getValue == 0のため、12:01 pmになります。その後、12にしますが、メソッドの後でif hours.getValue() ==12PMにします。そんなことは避けたい。かなり単純なJavaを維持しながら、これに関するアイデアはありますか?

解決しましたありがとうございます。setValue(12)の代わりに、hours.getValue()==0の場合は12を追加しました

4

3 に答える 3

1

時間が12に等しいとき、なぜあなたがすることをするだけではないのですか?

実際に時間の値を設定するのではなく、印刷時に12を追加するだけです。

于 2012-05-27T17:33:17.823 に答える
0

内部では24時間制を使用しますが、「hoursmod12」を使用してその値を表示します

于 2012-05-27T17:34:04.223 に答える
0

hours.getValue()を返すと仮定するとint、次のことができますhours.getValue()/13 == 0 ? hours.getValue() + ":" + minutes.getDisplayValue() + " AM": hours.getValue() - 12 + ":" + minutes.getDisplayValue() + " PM";。この式は三項演算子と呼ばれ、intデータ型は小数の結果をトリミングします。

私はそれをすべて行うように更新しました。私はあなたが1つのライナーが好きであることを望みます。

于 2012-05-27T17:48:39.067 に答える