黑盒测试日期问题

黑盒测试日期问题。
应用等价类和边界值法设计测试用例进行程序测试:该程序有三个输入变量
month、day、year(month 、 day 和 year 均为整数值,并且满足:1≤month≤12 和 1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期 在日历上隔一天的日期。例如,输入为 2004 年 11 月 29 日,则该程序的输出为 2004 年 12 月 1 日。
(1)分析各种输入情况,列出为输入变量 month 、 day 、 year 划分的有效等价类。
(2)分析程序的需求说明,结合等价类划分和边界值分析方法,给出问题可
能采取的操作。
(3)根据 (1) 和 (2) ,导出测试用例。
源程序:

package test;

import java.util.Scanner;

public class Text {
    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入四位数的年份、月份、以及日:");
            int y = sc.nextInt();
            int m = sc.nextInt();
            int d = sc.nextInt();
            if (y < 1000 || y > 9999) {
                System.out.println("您输入的年份不符合要求!请重新输入!");
            } else {
                if (m < 1 || m > 12) {
                    System.out.println("您输入的月份不符合要求!请重新输入!");
                } else {
                    switch (m) {
                        case 1:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 2:
                            if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) {
                                if (d < 1 || d > 29) {
                                    System.out.println("您输入的日不符合要求!请重新输入!");
                                } else {
                                    if (d == 28) {
                                        m += 1;
                                        d = 1;
                                    } else if (d == 29) {
                                        m += 1;
                                        d = 2;
                                    } else {
                                        d += 2;
                                    }
                                    System.out.println(y + "年" + m + "月" + d + "日");
                                }
                            } else {
                                if (d < 1 || d > 28) {
                                    System.out.println("您输入的日不符合要求!请重新输入!");
                                } else {
                                    if (d == 27) {
                                        m += 1;
                                        d = 1;
                                    } else if (d == 28) {
                                        m += 1;
                                        d = 2;
                                    } else {
                                        d += 2;
                                    }
                                    System.out.println(y + "年" + m + "月" + d + "日");
                                }
                            }
                            break;
                        case 3:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 4:
                            if (d < 1 || d > 30) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 29) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 30) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 5:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 6:
                            if (d < 1 || d > 30) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 29) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 30) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 7:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 8:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 9:
                            if (d < 1 || d > 30) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else if (d == 29) {
                                m += 1;
                                d = 1;
                            } else if (d == 30) {
                                m += 1;
                                d = 2;
                            } else {
                                d += 2;
                            }
                            System.out.println(y + "年" + m + "月" + d + "日");
                            break;
                        case 10:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 31) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 11:
                            if (d < 1 || d > 30) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 29) {
                                    m += 1;
                                    d = 1;
                                } else if (d == 30) {
                                    m += 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                        case 12:
                            if (d < 1 || d > 31) {
                                System.out.println("您输入的日不符合要求!请重新输入!");
                            } else {
                                if (d == 30) {
                                    y += 1;
                                    m = 1;
                                    d = 1;
                                } else if (d == 31) {
                                    y += 1;
                                    m = 1;
                                    d = 2;
                                } else {
                                    d += 2;
                                }
                                System.out.println(y + "年" + m + "月" + d + "日");
                            }
                            break;
                    }
                }
            }
        } catch (Exception e) {
            System.out.println("输入的数中存在非整数!请重新输入!");
        }
        
    }
}

  • 6
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值