码迷,mamicode.com
首页 > 其他好文 > 详细

闰年测试及string与Int转换的异常处理

时间:2015-04-05 21:55:15      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

闰年的计算方法为:四年一闰,百年不闰,四百年再闰。

基于闰年的计算方法用程序来实现为:

1.

bool isLeapYear( int year )

{

    return (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);

} 

2.

bool isLeapYear(int year)
{
    if (year % 400 == 0)
        return true;
    if (year % 100 == 0)
        return false;
    if (year % 4 == 0)
        return true;
    return false; 
}

在设计闰年判断程序时需要考虑的是:输入数据的合法性(如:公元0年不存在,int类型数据的取值范围,输入值不为整数)。

同样,在进行测试的工程中也需要考虑到这些因素。

因此,我的测试用例为:

编号 输入 预期结果 输出
test1 0 输入应为不大于9999的非零整数 输入应为不大于9999的非零整数
test2 2004 闰年 闰年
test3 1900 平年 平年
test4 2000 闰年 闰年
test5 402 平年 平年
test6 abc 输入应为不大于9999的非零整数 输入应为不大\n于9999的非零整数

测试结果:

技术分享  技术分享

技术分享  技术分享

技术分享  技术分享

部分源代码:

private void yearTesting(String textString,Text textTesting)
    {//textString为输入,    textTesting为输出结果
        if(!textString.matches("[1-9][0-9]{0,3}$"))
            textTesting.setText("输入应为不大\n于9999的非零整数");
        else{
            int year = Integer.parseInt(textString);
            if(year%400==0||(year%100!=0&&year%4==0))
                textTesting.setText("闰年");
            else 
                textTesting.setText("平年");
        }        
    }

在本程序中使用parseInt()来将string类型来转化为int类型的数据。在使用此函数时,可能因为用户的非法输入导致程序抛出异常。为了避免这种情况发生,我严格控制了输入数据。及只允许输入不大于9999的非零整数。

闰年测试及string与Int转换的异常处理

标签:

原文地址:http://www.cnblogs.com/tjuyyb/p/4394763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!