软件测试 PreDay 决策表

前一日函数public class PreDate {

  • public static void main(String[] args){
  • Scanner scancer=new Scanner(System.in);
  • System.out.println(“请输入年月日:”);
  • int year=scancer.nextInt();
  • int month=scancer.nextInt();
  • int day=scancer.nextInt();
  • //输入数据不合法
  • if(year1812
  • ||year>2017||month1||month>12||day1||day>31){

  • System.out.println(“亲~ 输入的数据不合法奥”);
  • }
  • //计算输入日期的前一个日期
  • //当年份发生变化的情况
  • if(month==1&&day==1){
  • year=year-1;
  • month=12;
  • day=31;
  • }
  • //月份发生变化的情况
  • else if(month!=1&&day==1){
  • switch(month){
  • case 2:
  • case 4:
  • case 6:
  • case 8:
  • case 9:
  • case 11:{
  • month=month-1;
  • day=31;
  • break;
  • }
  • case 5:
  • case 7:
  • case 10:
  • case 12:{
  • month=month-1;
  • day=30;
  • break;
  • }
  • case 3:{
  • if((year%400==0)||(year%4==0&&year%100!=0)){
  • month=month-1;
  • day=29;
  • }
  • else{
  • month=month-1;
  • day=28;
  • }
  • break;
  • }
  • }
  • }
  • //只有日期发生变化的情况
  • else{
  • day=day-1;
  • }
  • System.out.println(“The PreDay is “+year+“-“+month+“-“+day);
  • }
  • }

  • 等价类划分

    M1={月份:4,6,9,11月}

    M2={月份:5,7,10,12月}

    M3={月份:1月}

    M4={月份:2月}

    M5={月份:3月}

    M6={月份:8月}

    D1={日期:1日}

    D2={日期:2

    D3={日期:28日}

    D4={日期:29日}

    D5={日期:30日}

    D6={日期:31日}

    Y1={年:是闰年}

    Y2={年:不是闰年}



    决策表:

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    C1:月份在

    M1

    M1

    M1

    M2

    M2

    M3

    M3

    M4

    M4

    C2:日期在

    D1

    D2-D5

    D6

    D1

    D2-D6

    D1

    D2-D6

    D1

    D2-D3

    C2:年份在

     

     

     

     

     

     

     

     

     

    a1:不可能

     

     

    X

     

     

     

     

     

     

    a2:day减1

     

    X

     

     

    X

     

    X

     

    X

    a3:day复位31

    X

     

     

     

     

    X

     

    X

     

    a4:day复位30

     

     

     

    X

     

     

     

     

     

    a5:day复位29

     

     

     

     

     

     

     

     

     

    a6:day复位28

     

     

     

     

     

     

     

     

     

    a7:月减1

    X

     

     

    X

     

     

     

    X

     

    a8:月复位12

     

     

     

     

     

    X

     

     

     

    a9:年减一

     

     

     

     

     

    X

     

     

     

     

     

     

     

    10

    11

    12

    13

    14

    15

    16

    17

    C1:月份在

    M4

    M4

    M4

    M5

    M5

    M5

    M6

    M6

    C2:日期在

    D4

    D4

    D5-D6

    D1

    D1

    D2-D6

    D1

    D2-D6

    C2:年份在

    Y1

    Y2

     

    Y1

    Y2

     

     

     

    a1:不可能

     

    X

    X

     

     

     

     

     

    a2:day减1

    X

     

     

     

     

    X

     

    X

    a3:day复位31

     

     

     

     

     

     

    X

     

    a4:day复位30

     

     

     

     

     

     

     

     

    a5:day复位29

     

     

     

    X

     

     

     

     

    a6:day复位28

     

     

     

     

    X

     

     

     

    a7:月减1

     

     

     

    X

    X

     

    X

     

    a8:月复位12

     

     

     

     

     

     

     

     

    a9:年减一

     

     

     

     

     

     

     

     

     

     

     

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2017年2月20日
    下一篇 2017年2月20日

    相关推荐