用java写用户在程序中输入年月日,程序返回日期的后一天的日期,年月日都取整数且满足以下条件:MONTH:1~12,YEAR:1912~2112;DAY:1~31
时间: 2023-03-23 10:02:52 浏览: 69
下面是一个使用Java编写的程序,用于从控制台读取用户输入的年月日,并将其转换为后一天的日期,并按照指定的条件验证日期是否有效:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入日期,格式为 YYYY-MM-DD:");
String dateStr = input.next();
// 将输入的日期字符串解析为日期对象
Date date = parseDate(dateStr);
// 获取后一天的日期
Date nextDate = getNextDate(date);
// 将日期对象转换为指定格式的日期字符串
String nextDateStr = formatDate(nextDate);
System.out.println("后一天的日期为:" + nextDateStr);
}
/**
* 将日期字符串解析为日期对象
*/
public static Date parseDate(String dateStr) {
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr);
} catch (ParseException e) {
System.out.println("日期格式不正确!");
}
return date;
}
/**
* 获取后一天的日期
*/
public static Date getNextDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 1);
return calendar.getTime();
}
/**
* 将日期对象转换为指定格式的日期字符串
*/
public static String formatDate(Date date) {
return new SimpleDateFormat("yyyy-MM-dd").format(date);
}
/**
* 验证日期是否有效,满足以下条件:
* 1. 月份为1~12
* 2. 年份为1912~2112
* 3. 日份为1~31
*/
public static boolean isValidDate(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
if (month < 1 || month > 12 || year < 1912 || year > 2112 || day < 1 || day > 31) {
return false;
}
return true;
}
}
```
注意,在这个程序中,我们使用了`java.util.Date`类来表示日期,以及`java.util.Calendar`类来进行日期计算。同时,我们还使用了`java.text.SimpleDateFormat`类来将日期对象转换为指定格式的字符串。在验证日期是否有效的方法中,我们通过`Calendar`类获取了日期的年、月、日,并按照指定的条件进行了验证。