用Java写一个程序,要求1、键盘录入一个出身年月日,格式为yyyy-MM-dd。2、把该字符串转换为一个日期。3、通过该日期得到一个毫秒值。4、获得2020年10月1日的毫秒值。5两者相减得到一个毫秒值。6、把毫秒值转换为天打印出来。
时间: 2024-02-22 17:58:52 浏览: 154
好的,这是一个比较基础的Java程序,以下是程序代码:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DateDiff {
public static void main(String[] args) throws Exception {
// 1. 输入日期字符串
Scanner scanner = new Scanner(System.in);
System.out.print("请输入出生日期(格式为yyyy-MM-dd):");
String birthStr = scanner.nextLine();
// 2. 把字符串转换为日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birthDate = sdf.parse(birthStr);
// 3. 获取毫秒值
long birthTime = birthDate.getTime();
// 4. 获取2020年10月1日的毫秒值
Date targetDate = sdf.parse("2020-10-01");
long targetTime = targetDate.getTime();
// 5. 计算时间差
long timeDiff = targetTime - birthTime;
// 6. 转换为天数并输出结果
long dayDiff = timeDiff / (24 * 60 * 60 * 1000);
System.out.println("出生到2020年10月1日相差:" + dayDiff + "天");
}
}
```
程序流程如下:
1. 首先通过Scanner类从键盘输入出生日期字符串。
2. 然后使用SimpleDateFormat类将字符串转换为日期对象。
3. 通过Date类的getTime()方法获取该日期对象的毫秒值。
4. 同样使用SimpleDateFormat类获取2020年10月1日的日期对象,并获取其毫秒值。
5. 通过两个毫秒值计算时间差。
6. 最后将时间差转换为天数并输出结果。
注意:在程序中使用了throws Exception,因为SimpleDateFormat类的parse()方法可能会抛出ParseException异常,需要进行处理。
阅读全文