用java写出NextDate函数要求函数的输出是输入日期的后一天日期。例如:若输入为2023年3月7日,则函数输出应为2023年3月8日结果为年月日输出的代码以及测试代码
时间: 2024-05-02 17:20:53 浏览: 77
下面是NextDate函数的Java代码:
```java
public static String nextDate(int year, int month, int day) {
// 判断输入日期是否合法
if (year < 1812 || year > 2012 || month < 1 || month > 12 || day < 1 || day > 31) {
return "Invalid date";
}
// 判断该月份的天数
int daysInMonth;
if (month == 2) {
if (isLeapYear(year)) {
daysInMonth = 29;
} else {
daysInMonth = 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
daysInMonth = 30;
} else {
daysInMonth = 31;
}
// 判断输入日期是否合法
if (day > daysInMonth) {
return "Invalid date";
}
// 计算下一天的日期
if (day < daysInMonth) {
day++;
} else {
day = 1;
if (month < 12) {
month++;
} else {
month = 1;
year++;
}
}
// 返回下一天的日期
return year + "年" + month + "月" + day + "日";
}
// 判断是否为闰年
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
```
下面是测试代码:
```java
public static void main(String[] args) {
System.out.println(nextDate(2023, 3, 7)); // 输出:2023年3月8日
System.out.println(nextDate(2020, 2, 29)); // 输出:2020年3月1日
System.out.println(nextDate(2000, 12, 31)); // 输出:2001年1月1日
System.out.println(nextDate(2022, 2, 29)); // 输出:Invalid date
}
```
注意:这里的测试代码只是简单地测试了一些常见的情况,实际使用时应该进行更全面的测试。
阅读全文