用Java实现生存时间统计: (1) 用户输入出生的年月日 (2) 程序会计算出已经生存的时间 (3) 生存时间分别以年月日时分秒和毫秒为单位统计
时间: 2023-08-06 12:06:56 浏览: 193
好的,我可以为您提供一个Java程序来实现这个功能。以下是代码示例:
```java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class AgeCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的出生日期(格式:yyyy-mm-dd):");
String birthDateString = scanner.nextLine();
LocalDate birthDate = LocalDate.parse(birthDateString);
LocalDate currentDate = LocalDate.now();
LocalTime currentTime = LocalTime.now();
LocalDateTime currentDateTime = LocalDateTime.of(currentDate, currentTime);
long years = birthDate.until(currentDate, ChronoUnit.YEARS);
LocalDate nextBirthday = birthDate.plusYears(years);
long months = birthDate.until(nextBirthday, ChronoUnit.MONTHS);
long days = birthDate.until(nextBirthday, ChronoUnit.DAYS);
long hours = birthDate.atTime(0, 0).until(currentDateTime, ChronoUnit.HOURS);
long minutes = birthDate.atTime(0, 0).until(currentDateTime, ChronoUnit.MINUTES);
long seconds = birthDate.atTime(0, 0).until(currentDateTime, ChronoUnit.SECONDS);
long milliseconds = birthDate.atTime(0, 0).until(currentDateTime, ChronoUnit.MILLIS);
System.out.println("您已经存活了 " + years + " 年 " + months + " 月 " + days + " 天 " + hours + " 小时 " + minutes + " 分钟 " + seconds + " 秒 " + milliseconds + " 毫秒");
}
}
```
在这个程序中,我们使用了Java 8中的日期时间库(java.time)来进行日期时间的计算。首先,我们使用Scanner类从控制台获取用户输入的出生日期。然后,我们获取当前日期时间,并使用Java 8中的ChronoUnit类来计算出生时间与当前时间之间的差距。最后,我们将生存时间以年月日时分秒和毫秒为单位输出到控制台。
注意,这个程序假设用户输入的日期符合ISO-8601标准的格式(yyyy-mm-dd)。如果用户输入了不正确的日期格式,程序将会抛出DateTimeParseException异常。
阅读全文