用java设计并实现一个 NextDate()函数,函数功能为:NextDate()函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2017 年 3 月 7 日,则函数的输出为 2017 年 3 月 8 日 。 要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③2011≤year≤2051
时间: 2024-02-12 13:06:15 浏览: 112
好的,我可以为您提供一个Java程序来实现NextDate()函数:
```java
public static String NextDate(int month, int day, int year) {
// 判断输入是否合法
if (month < 1 || month > 12 || day < 1 || day > 31 || year < 2011 || year > 2051) {
return "输入日期不合法";
}
// 判断是否是闰年
boolean isLeapYear = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
isLeapYear = true;
}
// 计算下一天的日期
int nextMonth = month;
int nextDay = day + 1;
int nextYear = year;
if (month == 2) { // 2月份特殊处理
if (isLeapYear && day == 29) {
nextDay = 1;
nextMonth = 3;
} else if (!isLeapYear && day == 28) {
nextDay = 1;
nextMonth = 3;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) { // 30天月份特殊处理
if (day == 30) {
nextDay = 1;
nextMonth++;
}
} else { // 31天月份特殊处理
if (day == 31) {
nextDay = 1;
if (month == 12) {
nextYear++;
nextMonth = 1;
} else {
nextMonth++;
}
}
}
// 构造输出字符串
String nextDate = nextYear + "年" + nextMonth + "月" + nextDay + "日";
return nextDate;
}
```
该程序首先判断输入日期的合法性,然后根据输入日期计算下一天的日期。特别地,2月份的处理需要判断是否为闰年,30天月份的处理只需要判断是否为30号,而31天月份的处理需要判断是否为31号以及是否是12月份。最后,程序将计算出的下一天日期构造为字符串并返回。
阅读全文