编程实现NextDay 函数。Y、M、D分别存储当前的年、月、日String NextDayString Y String M String D根据当前日期输出下一天的日期。现在要测试NextDay函数用判定表方法来设计相应的测试用例并编写对应Junit代码进行测试。可以适当参照互联网搜索获得资料进行判定表方法的理解
判定表:
| 输入 | 输出 | |------|------| | 2021/1/31 | 2021/2/1 | | 2021/2/28 | 2021/3/1 | | 2020/2/29 | 2020/3/1 | | 2020/12/31 | 2021/1/1 | | 2022/2/1 | 2022/2/2 |
Junit代码:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class NextDayTest {
@Test
public void testNextDay() {
assertEquals("2021/2/1", NextDay("2021", "1", "31"));
assertEquals("2021/3/1", NextDay("2021", "2", "28"));
assertEquals("2020/3/1", NextDay("2020", "2", "29"));
assertEquals("2021/1/1", NextDay("2020", "12", "31"));
assertEquals("2022/2/2", NextDay("2022", "2", "1"));
}
public String NextDay(String Y, String M, String D) {
int year = Integer.parseInt(Y);
int month = Integer.parseInt(M);
int day = Integer.parseInt(D);
int nextYear = year;
int nextMonth = month;
int nextDay = day + 1;
if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 30) {
nextMonth++;
nextDay = 1;
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
if (day == 29) {
nextMonth = 3;
nextDay = 1;
}
} else {
if (day == 28) {
nextMonth = 3;
nextDay = 1;
}
}
} else if (day == 31) {
if (month == 12) {
nextYear++;
nextMonth = 1;
} else {
nextMonth++;
}
nextDay = 1;
}
return nextYear + "/" + String.format("%02d", nextMonth) + "/" + String.format("%02d", nextDay);
}
}
``
原文地址: https://www.cveoy.top/t/topic/cy60 著作权归作者所有。请勿转载和采集!