1

時間値を。の形式の整数で格納する必要がありますHHMMSS。この時間値は1秒ごとに増加します(基本的にはカスタムクロック)。ただし、整数は当然10ベースであるため、各桁を抽出し、1分で60秒、1時間で60分、1日24時間をチェックする面倒なロジックを実装する必要があります。大規模なif/elseifチャンクなしでそれを行うためのいくつかの賢い方法があるのだろうか。

4

2 に答える 2

2

剰余演算子を使用して、1秒カウンターの各コンポーネントを選択できます。

int totalSeconds;
...
int seconds = totalSeconds % 60;
int minutes = (totalSeconds / 60) % 60;
int hours = (totalSeconds / 3600);

次に、1秒のカウンターをインクリメントして、各コンポーネントを抽出できます。

于 2012-10-14T01:51:39.160 に答える
1

私の提案は、次のようなCustomClockクラスを実装することです。

public class CustomClock {
    private int hour;
    private int minute;
    private int second;

    public CustomClock(int hour, int minute, int second) {
        this.hour = hour;
        // ...
    }

    public void increment() {
        second = second + 1)%60;
        if (second == 0) minute = (minute + 1)%60;
        if (minute == 0) hour = (hour + 1)%24;
    }
}

したがって、mod演算子(%)を利用して、任意の基数を計算します。

于 2012-10-14T01:48:34.117 に答える