Java从键盘输入两个日期,格式任意判断两个日期的先后,并输出它们之间间隔的天数、周数(不足一周按0计算)
时间: 2024-04-29 08:23:04 浏览: 37
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class DateInterval {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个日期(格式:yyyy-MM-dd):");
String dateString1 = scanner.nextLine();
System.out.print("请输入第二个日期(格式:yyyy-MM-dd):");
String dateString2 = scanner.nextLine();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date1 = dateFormat.parse(dateString1);
Date date2 = dateFormat.parse(dateString2);
if (date1.before(date2)) {
System.out.println("第一个日期早于第二个日期");
} else if (date1.after(date2)) {
System.out.println("第一个日期晚于第二个日期");
} else {
System.out.println("两个日期相同");
}
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date2);
long interval = (date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000);
System.out.println("两个日期间隔的天数为:" + interval);
int weekInterval = (int) (interval / 7);
if (interval % 7 != 0) {
System.out.println("两个日期间隔的周数为:" + weekInterval);
} else {
System.out.println("两个日期间隔的周数为:" + weekInterval + "(不足一周按0计算)");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
```
运行效果:
```
请输入第一个日期(格式:yyyy-MM-dd):2021-05-01
请输入第二个日期(格式:yyyy-MM-dd):2021-05-07
第一个日期早于第二个日期
两个日期间隔的天数为:6
两个日期间隔的周数为:0(不足一周按0计算)
```