0

私は軍事時間を介して経過時間を取得するように設計されたプログラムを作成していますが、これは私がこれまでに得たものです:

public class TimeInterval {
    private int firstTime;
    private int secondTime;

    public TimeInterval(int _first,int _second) {
        if (_first < 0 || _second < 0) {
            System.out.println("ERROR INVALID INPUT");
            System.exit(0);
        }
        else if (_first > 2400 || _second > 2400) {
            System.out.println("ERROR INVALID INPUT");
            System.exit(0); 
        }
        else
            firstTime = Math.max(_first, _second);
            secondTime = Math.min(_first,_second);
        }
    }

    public int getHours() {
        return (Integer.parseInt(Integer.toString(firstTime).substring(0, 2)))-(Integer.parseInt(Integer.toString(secondTime).substring(0, 2)));
    }
}

このプログラムは、0000 から 0700 までの _first または _second の入力を処理する場合を除いて、ほとんどの部分で機能します。考え方としては、それらは軍事時間として読み取られますが、java はそれらを 8 進法整数として読み取るため、_first = 0700 および _second の場合は= 1400 448 か何かを取得します。とにかく、_first と _second が Math.min に入力されたときに、基数 8 ではなく基数 10 として読み取られるようにすることができます。

4

1 に答える 1