Java 输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。
时间: 2024-10-03 21:04:28 浏览: 29
在Java中,你可以使用`Scanner`类来获取用户的输入,并使用`java.time.LocalDate`类来处理日期。以下是一个简单的示例程序,展示了如何完成这个任务:
```java
import java.util.Scanner;
import java.time.LocalDate;
public class DateInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 获取第一个日期的输入
System.out.println("请输入第一个日期(格式:YYYY MM DD):");
int year1 = scanner.nextInt();
int month1 = scanner.nextInt();
int day1 = scanner.nextInt();
LocalDate date1 = LocalDate.of(year1, month1, day1);
// 确保用户输入有效日期
if (!date1.isBefore(LocalDate.now())) {
throw new IllegalArgumentException("第一个日期必须小于当前日期");
}
// 获取第二个日期的输入
System.out.println("请输入第二个日期(格式:YYYY MM DD,确保其大于或等于第一个日期):");
int year2 = scanner.nextInt();
int month2 = scanner.nextInt();
int day2 = scanner.nextInt();
LocalDate date2 = LocalDate.of(year2, month2, day2);
// 检查第二个日期是否大于或等于第一个日期
if (date2.isBefore(date1)) {
throw new IllegalArgumentException("第二个日期必须大于或等于第一个日期");
}
// 打印结果
System.out.println("第一个日期: " + date1);
System.out.println("第二个日期: " + date2);
}
}
```
在这个例子中,用户需要按照指定格式输入两个日期,然后程序会检查这两个日期的合法性。如果不符合要求,它会抛出异常。
阅读全文