闰年检测问题

关于闰年测试的问题:

条件: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.

但以上出现了一个问题,当输入为空时,错误。还有当输入飞数字的时候也会显示错误。

时间: 2024-10-25 18:48:02

闰年检测问题的相关文章

[软件测试学习]考虑到测试的代码编写/int.parse的非法输入—由一个简单的c#闰年检测程序说起

一个简单的C#的闰年检测程序 1.闰年检测的函数编写 当提起检测平年闰年时候,第一反应写出的代码 1 public static bool isLeapYear(int year){ 2 return ((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)) 3 } 但是这个并不易于测试和出现错后的修改,更改代码如下 1 public static bool isLeapYear(int year){ 2 bool check = ne

以一个闰年检测程序为例的非法字符异常输入检测

闰年:闰年(Leap Year)是为了弥补认为历法规定造成的年度天数与地球实际公转周期的时间差而设立的.补上时间差的年份为闰年. 简单来说,置润法则是:四年一闰,百年不闰,四百年再闰.即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年. 例如:1950-2050年间的闰年: 1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000, 2004,2008,2012,2016,2020,2024,2

闰年检测程序及异常问题解决

在一个简单的闰年问题的判断中,从输入框获取字符串,并进行判断: 结果如下: : 但当输入非数字的字符串时,会抛出异常: 解决如下:

软件测试——闰年测试

只要是对于需要记录年份的程序,闰年检测都是一个很重要的环节.公历的闰年规则如下:   1.普通年能被4整除且不能被100整除的为闰年.(如2004年就是闰年,1900年不是闰年) 2.世纪年能被400整除的是闰年.(如2000年是闰年,1900年不是闰年) 然而对于不正确的输入,程序必须对持做出反应,不能使异常情况阻碍程序的运行,下面是闰年检测的程序试例: 输入年份 结果 2000 闰年 1900 非闰年 -1600 非法输入 1864 闰年 saddsa 非法输入 代码实现: import j

关于软件测试(4):闰年输入的判断以及非法输入的处理测试

针对这周的软件测试课程,讲解了非法输入的不正当处理会对程序造成不必要的损失,因此通过简单的闰年检测程序来处理关于闰年测试的非法输入. 一.需求分析 要求输入框输入年份,点击按钮,出现提示.并能有效的处理任何输入 二.测试用例 内容 取值 预期结果 被400整除 2000 是闰年 被100整除但不被400整除 1900 不是闰年 被4整除且不被100整除 1904 是闰年 不被4整除 1901 不是闰年 非数字字符 abc 非法输入 负数 -1234 非法输入 小数 2000.5 非法输入 空字符

java日期处理工具类

import java.text.DecimalFormat; import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import java.util.Random; import java.uti

【章老师的课程】检测闰年的程序

检测输入是否是闰年,要从以下几个方面测试: 1.输入合法性检测: 首先确保输入的是数字,并且不能超过int型存储的长度. 2.逻辑检测: 对于闰年的计算方式如下: 4的倍数 不是100的倍数,但是400的倍数 对于以上的检测可以使用两个函数进行检测 private boolean checkNum(char[] input) { for(int i = 0; i < input.length; ++i) { if((int)input[i] < 48 || (int)input[i] >

一个闰年测试程序,其可以检测输入是否合法

1.闰年:凡阳历中有闰日(二月为二十九日)的年,闰余(岁余置闰.阴历每年与回归年相比所差的时日). 2.闰年的判定方法:四年一闰,公元年份能被4整除不能被100整除,或者能被400整除的年份. 3.因为最近在学javascript,所以现用javascript+html实现该功能,代码如下: <html> <head> <meta charset="utf-8"> <h3>请输入您要测的年份:</h3> <style t

软件测试-4 判断闰年的程序以及防止输入非法字符

一.题目 判断所输入的年份是否是闰年 二.程序实现 我继续使用javascript+HTML来实现: 不考虑异常的输入,判断闰年的程序如下: function isLeapYear( y ){ return ( y % 400 == 0 ) || ( y % 4 == 0 && y % 100 != 0 ); } 但是在实际使用时必须考虑是否有异常输入,所以我可以在调用该函数前检测一下输入,保证输入是合法的: function isInt(input){ var reg = /^[0-9]