import java.util.Scanner;
import java.time.LocalDate; //表示日期的类 xxxx-xx-xx
import java.time.Period; //计算一段时间,年月日规格化
import java.time.Instant; //记录时间点
import java.time.Duration; //表示两个Instant时间点间的一段时间
import java.time.temporal.ChronoUnit; //计算时间差,单位可以是天,也可以是别的
class App{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.print("请输入生日(yyyy-mm-dd):");
String stringDate=sc.nextLine(); //获取字符串形式的日期
Instant begin=Instant.now(); //记录开始时的时间点,(开始计时)
LocalDate brithDate=LocalDate.parse(stringDate); //将字符串日期转换成真正的日期类型
LocalDate today=LocalDate.now(); //获取今天的日期
int y=brithDate.getYear();
int m=brithDate.getMonthValue(); //注意getMonth()返回的是英文表示的月(Month型),如May
int d=brithDate.getDayOfMonth();
Period p=Period.between(brithDate,today); //表示从生日到今天过了多少年月日
long days=ChronoUnit.DAYS.between(brithDate,today); //表示从生日到今天过了多少天,返回long类型
System.out.printf("你出生于%d年%d月%d日\n",y,m,d);
System.out.printf("你活了%d个年%d个月%d天,共计%d天\n",p.getYears(),p.getMonths(),p.getDays(),days);
System.out.println("你已经吃了"+days*3+"顿饭。");
Instant end=Instant.now(); //记录结束时的时间点,(计时结束)
System.out.println("程序运行了 "+Duration.between(begin,end).toMillis()+" 毫秒");
System.out.println("程序运行了 "+Duration.between(begin,end).getSeconds()+" 秒");
}
}