输入一个日期,输出该日期后天的日期。日期中年份的有效取值范围为1000 —9998。用Java语言写出该段程序并用等价类划分测试该程序
时间: 2023-06-02 17:05:52 浏览: 146
我明白了,以下是Java代码:
```
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class NextDayCalculator {
public static String calculateNextDay(String inputDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
c.setTime(sdf.parse(inputDate));
} catch (Exception e) {
return "输入日期格式错误";
}
c.add(Calendar.DAY_OF_MONTH, 1);
return sdf.format(c.getTime());
}
}
```
上述程序有三种输入情况:
- 有效日期,如 "2022-03-08"
- 非法日期,如 "2022-02-31"
- 格式不正确,如 "2022/02/31"
根据等价类划分,将所有输入划分为下列三类:
1. 输入有效日期
2. 非法日期(无效日期)
3. 格式不正确的日期
对于第一类,可能的测试用例为:
- 有效日期 "2022-03-01"
- 非闰年2月末的日期,如 "2022-02-28"
- 闰年2月末的日期,如 "2020-02-29"
- 年份上限1000,如 "1000-01-01"
- 年份下限9998,如 "9998-12-30"
对于第二类,可能的测试用例为:
- 日期中月份无效,如 "2022-13-01"
- 日期中日期无效,如 "2022-02-31"
对于第三类,可能的测试用例为:
- 日期格式不正确 "2022/02/01"
- 日期格式不正确 "2022-02"
- 日期格式不正确 "2022年02月01日"
通过上述测试用例,可以验证程序是否正确实现了输入要求,以及是否能够输出正确的结果。
阅读全文