关于闰年测试的问题:
条件:1. 4 年一闰, 100 年不闰,400年又闰。
2. 输入年份大于0。
3. 输入只能为数字。
源代码:
public class leapyear extends Application {
public static void main(String[] args) {
leapyear.launch( args );
}
private TextField textfield = new TextField();
@Override
public void start(Stage arg0) throws Exception {
arg0.setTitle( "LeapYear" );
HBox hbox = new HBox( 8 );
textfield.setPrefColumnCount( 25 );
hbox.setAlignment( Pos.CENTER_LEFT );
Button btn = new Button();
btn.setText( "确定" );
btn.setOnAction( new Listener() );
hbox.getChildren().addAll( new Label( " 请输入年份: "), textfield, btn );
arg0.setScene( new Scene( hbox, 450, 80 ));
arg0.show();
}
public class Listener implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent arg0) {
String str = textfield.getText();
String inf = "";
if( isLeapYear( Integer.parseInt( str ) ) ) {
inf = "闰年";
}
else {
inf = "非闰年";
}
JOptionPane.showMessageDialog( null, inf, "information",
JOptionPane.INFORMATION_MESSAGE );
}
}
private boolean isLeapYear( int year ) {
if( year % 4 != 0 ) {
return false;
}
else if( year % 100 != 0 ) {
return true;
}
else if( year % 400 != 0 ) {
return false;
}
else {
return true;
}
}
}
编号 | 测试用例 | 结果 |
1 | 1995 | 非闰年 |
2 | 2000 | 闰年 |
3 | 2012 | 闰年 |
4 | 0000 | 闰年 |
5 | 1900 | 非闰年 |
测试结果:
1.
2.
3.
4.
5.
但以上出现了一个问题,当输入为空时,错误。还有当输入飞数字的时候也会显示错误。