捕获无效时间输入

catch invalid time input

我想在我的代码中做的是,如果用户输入无效时间,例如 25:00:00,我的代码应该捕获错误并提示用户他输入了无效时间。我的 if else 语句似乎不起作用。

public void setTime(int h, int m, int s){

        hour = ((h>=0 && h<=24) ? h:0 );
        minute = ((m>=0 && m<=60)? m:0);
        second =((s>=0 && s<=60)? s:0);
    }


    public void toRegularTime(){
        if(hour > 24){
            System.out.println("invalid time");
            JOptionPane.showMessageDialog(null,"Please Input a Valid Time!", "Invalid Time!", JOptionPane.ERROR_MESSAGE);

        }else
            System.out.format("%02d:%02d:%02d %s", ((hour==0 || hour ==12) ? 12:hour%12),minute,second,(hour<12 || hour>23? "AM" : "PM"));






}

在您的 setTime 方法中,您已经应用了该检查 hour = ((h>=0 && h<=24) ? h:0 ); 并将 hour 重置为零。所以 toRegularTime 方法中的逻辑是多余的。 如果您不确定 Java 三元运算符的工作原理,请检查此 link http://en.wikipedia.org/wiki/%3F:#Java

此外,您调用这些方法的顺序也不清楚。

希望对您有所帮助!!