软件测试 PreDay 决策表

这篇博客探讨了如何利用决策表进行软件测试,特别是在处理日期相关的逻辑时,如不同月份的天数变化,以及闰年和平年的判断。通过定义M1到M6表示不同月份,D1到D6表示不同日期,Y1和Y2表示闰年和非闰年的情况,作者详细阐述了如何构建和应用决策表来确保测试覆盖全面。
摘要由CSDN通过智能技术生成
前一日函数DPreateNextDate的逆函数,即给定一个月份、日期、年,会返回前一天的日期。
取值在1812到2017年
   日的取值在1日到31日之间
   月的取值在112月之间
代码如下:
import java.util.Scanner;

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(year<1812||year>2017||month<1||month>12||day<1||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);
  }
}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值