某函数包含三个输入变量year、month、day,分别表示年、月、日,函数的输出为输入日期后一天的日期。例如,输入year=2010、month=1、day=1,则函数的输出为2010年1月2日。 已定义变量year、month、day的值均为正整数,且year取值从1900到2012年。试采用等价类划分法设计测试用例。 1、完成代码编写 2、正确划分等价类,并设计测试用例。使用java语言
时间: 2023-04-04 14:04:31 浏览: 254
等价类划分,设计测试用例
5星 · 资源好评率100%
1、代码编写:
public class NextDay {
public static void main(String[] args) {
int year = 2010;
int month = 1;
int day = 1;
int[] nextDay = getNextDay(year, month, day);
System.out.println("输入日期的下一天为:" + nextDay[0] + "年" + nextDay[1] + "月" + nextDay[2] + "日");
}
public static int[] getNextDay(int year, int month, int day) {
int[] nextDay = new int[3];
if (year < 1900 || year > 2012 || month < 1 || month > 12 || day < 1 || day > 31) {
System.out.println("输入日期不合法!");
return null;
}
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
if (day < 1 || day > 29) {
System.out.println("输入日期不合法!");
return null;
}
} else {
if (day < 1 || day > 28) {
System.out.println("输入日期不合法!");
return null;
}
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
if (day < 1 || day > 30) {
System.out.println("输入日期不合法!");
return null;
}
} else {
if (day < 1 || day > 31) {
System.out.println("输入日期不合法!");
return null;
}
}
if (month == 12 && day == 31) {
nextDay[0] = year + 1;
nextDay[1] = 1;
nextDay[2] = 1;
} else if (month == 2 && day == 28 && (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)) {
nextDay[0] = year;
nextDay[1] = month;
nextDay[2] = day + 1;
} else if (day == 30 && (month == 4 || month == 6 || month == 9 || month == 11)) {
nextDay[0] = year;
nextDay[1] = month + 1;
nextDay[2] = 1;
} else if (day == 31) {
if (month == 12) {
nextDay[0] = year + 1;
nextDay[1] = 1;
nextDay[2] = 1;
} else {
nextDay[0] = year;
nextDay[1] = month + 1;
nextDay[2] = 1;
}
} else {
nextDay[0] = year;
nextDay[1] = month;
nextDay[2] = day + 1;
}
return nextDay;
}
}
2、等价类划分法设计测试用例:
输入年月日均合法的情况:
输入:year=2010, month=1, day=1
输出:2010年1月2日
输入年份不合法的情况:
输入:year=1899, month=1, day=1
输出:输入日期不合法!
输入月份不合法的情况:
输入:year=2010, month=13, day=1
输出:输入日期不合法!
输入日期不合法的情况:
输入:year=2010, month=2, day=29
输出:输入日期不合法!
输入日期为当月最后一天的情况:
输入:year=2010, month=1, day=31
输出:2010年2月1日
输入日期为2月28日,且为闰年的情况:
输入:year=2000, month=2, day=28
输出:2000年2月29日
输入日期为4月30日的情况:
输入:year=2010, month=4, day=30
输出:2010年5月1日
输入日期为12月31日的情况:
输入:year=2010, month=12, day=31
输出:2011年1月1日
阅读全文