捕获无效的时间输入

时间:2015-03-04 00:34:55

标签: java time

我想在代码中做的是,如果用户输入无效时间(如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"));






}

1 个答案:

答案 0 :(得分:0)

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

同样不清楚您调用这些方法的顺序。

希望这会有所帮助!!