等价类划分法定义:将用户所有可能输入的数据,划分为若干中情况,把每一种情况找一些具有

代表性的数据作为测试用例,而这种选择测试类的方法,就叫做等价类划分,它是属于黑盒测试的;

****用等价类划分法解决下列问题****

NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2020年3月7日,则函数的输出为 2020年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:  

 ①1≤month≤12 

 ②1≤day≤31 

 ③1920≤year≤2050 

作答格式:等价类表+测试用例表

*********科普*********

三五七八十腊 三十一天永不差,四六九冬三十整,惟有二月二十八,闰年还要把一日加

--闰年的判断--(中国的年有平年、闰年之分,基本是4年一闰,其余都是平年,第一次接触‘闰’这个概念是学习鲁迅先生的短片小说“少年闰土”,但是他叫闰土,是因为他是闰月出生,五行缺土,闰月是个很复杂的概念;啊~,现在有点儿明白鲁迅先生的小说为何受欢迎了,童年真的不能回忆呀)

普通闰年:能被4整除

世纪闰年:能被400整除

闰年2月29天,平年2月28天

***********************

题目分析:输入变量:year\month\day

问题关键:

年:分闰年和平年

月:1、3、5、7、8、10、12-------永远31天||||||||||但8月31~下一天~9月1--------12月31天~下一天~下一年的1月1

  4、6、9、11---------永远30天

  2月--闰年29天,平年28天

日:分类--1~27、28、29、30、31

 1 public static ArrayList NextDate(int nowYear, int nowMonth, int nowDay)
 2     {
 3         ArrayList arr = new ArrayList();
 4         if (nowYear <= 3000 && nowYear >= 1000 && nowMonth <= 12 && nowMonth >= 1 && nowDay >= 1 && nowDay <= getDays(nowYear, nowMonth))
 5         {
 6             int nextYear;
 7             int nextMonth;
 8             int nextDay;
 9             if (nowDay == getDays(nowYear, nowMonth))
10             {
11                 if (nowMonth == 12)
12                 {
13                     nextYear = nowYear + 1;
14                     nextMonth = 1;
15                     nextDay = 1;
16                 }
17                 else
18                 {
19                     nextYear = nowYear;
20                     nextMonth = nowMonth + 1;
21                     nextDay = 1;
22                 }
23             }
24             else
25             {
26                 nextYear = nowYear;
27                 nextMonth = nowMonth;
28                 nextDay = nowDay + 1;
29             }
30             arr.Add(nextYear);
31             arr.Add(nextMonth);
32             arr.Add(nextDay);
33         }
34         else
35         {
36             arr.Add("错误年份");
37             arr.Add("错误月份");
38             arr.Add("错误天数");
39         }
40         return arr;
41     }
42     protected static bool isRun(int year)
43     {
44         if (year % 4 == 0 && year % 400 != 0)
45         {
46             return true;
47         }
48         return false;
49     }
50     protected static int getDays(int year, int month)
51     {
52         int days = 0;
53         switch (month)
54         {
55             case 1:
56             case 3:
57             case 5:
58             case 7:
59             case 8:
60             case 10:
61             case 12: days = 31; break;
62             case 2: days = isRun(year) ? 29 : 28; break;
63             case 4:
64             case 6:
65             case 9:
66             case 11: days = 30; break;
67         }
68         return days;
69     }
NextDate小程序

相关文章:

  • 2021-11-17
  • 2021-09-21
  • 2021-10-17
  • 2021-08-05
  • 2021-09-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-15
  • 2021-12-09
  • 2022-12-23
  • 2021-10-06
  • 2022-12-23
相关资源
相似解决方案