Java 利用结构class Date{int year;int month;int day;};输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。
时间: 2024-10-09 16:02:02 浏览: 33
在Java中,你可以创建一个名为`Date`的结构体,就像你说的那样,包含年、月和日。但是,由于Java不直接支持结构体,我们可以创建一个简单的类来表示日期,并提供一个方法来比较两个日期。这里是一个例子:
```java
public class Date {
int year;
int month;
int day;
// 构造函数
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
// 重写toString()方法,方便打印日期
@Override
public String toString() {
return String.format("%04d-%02d-%02d", year, month, day);
}
// 比较两个日期
public static boolean isLater(Date date1, Date date2) {
return date1.year > date2.year || (date1.year == date2.year && date1.month > date2.month) || (date1.year == date2.year && date1.month == date2.month && date1.day >= date2.day);
}
// 主程序入口,读取用户输入并比较日期
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个日期(例如:2023 01 01):");
String input1 = scanner.nextLine();
String[] dateParts1 = input1.split(" ");
if (dateParts1.length != 3) {
System.err.println("无效的日期格式。");
return;
}
Date date1 = new Date(Integer.parseInt(dateParts1[0]), Integer.parseInt(dateParts1[1]), Integer.parseInt(dateParts1[2]));
System.out.println("请输入第二个日期(需要晚于或等于第一个日期):");
String input2 = scanner.nextLine();
String[] dateParts2 = input2.split(" ");
if (dateParts2.length != 3) {
System.err.println("无效的日期格式。");
return;
}
Date date2 = new Date(Integer.parseInt(dateParts2[0]), Integer.parseInt(dateParts2[1]), Integer.parseInt(dateParts2[2]));
if (!isLater(date1, date2)) {
System.out.println("第二个日期不是第一个日期之后的日期。");
} else {
System.out.println("第二个日期 " + date2 + " 晚于或等于第一个日期 " + date1);
}
}
}
```
在这个程序里,我们首先获取用户输入的两个日期,然后通过`Date`类实例化它们。接着,`isLater`方法会判断第二个日期是否晚于或等于第一个日期。如果输入的日期格式不正确,我们会提示用户。
阅读全文