捕获无效时间输入
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
此外,您调用这些方法的顺序也不清楚。
希望对您有所帮助!!
我想在我的代码中做的是,如果用户输入无效时间,例如 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
此外,您调用这些方法的顺序也不清楚。
希望对您有所帮助!!