掌握Date类和Calendar类得常用方法。实验场地或主要设备与器材:计算机实验要求: 用户输入两个日期,程序将判断两个日期的大小关系,以及两日期间隔的天数。
时间: 2024-05-06 21:17:44 浏览: 64
以下是使用Java中Date类和Calendar类实现用户输入两个日期并判断大小关系以及间隔天数的示例代码:
```java
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class DateComparison {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个日期,格式为yyyy-MM-dd:");
String dateString1 = scanner.nextLine();
System.out.println("请输入第二个日期,格式为yyyy-MM-dd:");
String dateString2 = scanner.nextLine();
try {
// 将用户输入的日期字符串解析为Date对象
Date date1 = DateUtil.parse(dateString1);
Date date2 = DateUtil.parse(dateString2);
// 判断两个日期的大小关系
int compareResult = DateUtil.compare(date1, date2);
if (compareResult == 0) {
System.out.println("两个日期相等");
} else if (compareResult < 0) {
System.out.println("第一个日期早于第二个日期");
} else {
System.out.println("第一个日期晚于第二个日期");
}
// 计算两个日期间隔的天数
int daysBetween = DateUtil.daysBetween(date1, date2);
System.out.println("两个日期间隔的天数:" + daysBetween);
} catch (Exception e) {
System.out.println("日期格式不正确,请按照yyyy-MM-dd的格式输入。");
}
scanner.close();
}
}
class DateUtil {
/**
* 将日期字符串解析为Date对象
*/
public static Date parse(String dateString) throws Exception {
return new Date(Long.parseLong(dateString.replaceAll("-", "")));
}
/**
* 比较两个日期的大小关系
* 返回值为0表示两个日期相等
* 返回值小于0表示date1早于date2
* 返回值大于0表示date1晚于date2
*/
public static int compare(Date date1, Date date2) {
return date1.compareTo(date2);
}
/**
* 计算两个日期间隔的天数
*/
public static int daysBetween(Date date1, Date date2) {
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date2);
// 如果date1在date2之后,交换两个日期,确保calendar1在calendar2之前
if (calendar1.after(calendar2)) {
Calendar temp = calendar1;
calendar1 = calendar2;
calendar2 = temp;
}
int daysBetween = 0;
while (calendar1.before(calendar2)) {
calendar1.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
return daysBetween;
}
}
```
用户在控制台输入两个日期,程序将会使用DateUtil类解析日期字符串并将其转换为Date对象,然后调用DateUtil类中的compare方法比较两个日期的大小关系,最后调用daysBetween方法计算两个日期间隔的天数。
阅读全文