【蒟蒻的Java代码记录系列】时间相关的小工具类

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()+" 秒");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ctrl AC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值