从命令行参数输入一个日期,如“2013-3-20”,计算它与今日之间的天数间隔Java
时间: 2024-11-03 08:20:53 浏览: 13
在Java中,你可以使用`java.time.LocalDate`类以及`java.time.Period`类来计算两个日期之间的天数差。首先,你需要获取当前日期,然后将用户提供的字符串转换成`LocalDate`对象。以下是一个简单的示例:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.time.LocalDate;
import java.time.Period;
public class DateDifference {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入日期(格式: yyyy-MM-dd):");
String inputDateStr = scanner.nextLine();
// 创建日期格式化对象
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
// 将字符串转换为LocalDate对象
LocalDate dateInput = dateFormat.parse(inputDateStr);
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 计算日期差并转换为Period
Period difference = Period.between(dateInput, currentDate);
// 输出天数差异
int daysDiff = difference.getDays();
System.out.println("从 " + inputDateStr + " 到今天相差了 " + daysDiff + " 天.");
} catch (ParseException e) {
System.out.println("输入的日期格式错误,请按照指定格式输入。");
e.printStackTrace();
}
}
}
```
在这个程序中,我们先提示用户输入一个日期,然后尝试解析该输入。如果输入有效,我们会计算出与今天的天数差;如果输入无效(例如格式错误),会捕获`ParseException`并给出错误信息。
阅读全文