标签:
闰年的计算方法为:四年一闰,百年不闰,四百年再闰。
基于闰年的计算方法用程序来实现为:
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的非零整数。
标签:
原文地址:http://www.cnblogs.com/tjuyyb/p/4394763.html