Java8 实现计算两个日期之间的天数

这几天给项目组同事做代码评审,刚好看到一段求两个日期之间的天数,看完后觉得写的太复杂(采用获取两个日期的毫秒数,相减后再除以一天的毫秒数得到天数),刚好项目用的是java8,就想到用java8 新的Java日期/时间API 实现一个更加简洁的方法

package test;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

/**
 * @author kevin
 * java8 计算两个日期之间的天数
 */
public interface DateUtil {

    /**
     * 计算当前日期与{@code endDate}的间隔天数
     *
     * @param endDate
     * @return 间隔天数
     */
     static long until(LocalDate endDate){
      return LocalDate.now().until(endDate, ChronoUnit.DAYS);
    }

    /**
     * 计算日期{@code startDate}与{@code endDate}的间隔天数
     *
     * @param startDate
     * @param endDate
     * @return 间隔天数
     */
    static long until(LocalDate startDate, LocalDate endDate){
        return startDate.until(endDate, ChronoUnit.DAYS);
    }



}
测试代码:

package test;

import java.time.LocalDate;
import java.time.Month;

public class DateTest {
    public static void main(String[] args) {
      LocalDate startDate =  LocalDate.of(2017, Month.DECEMBER,5);
        LocalDate endDate =  LocalDate.of(2017, Month.DECEMBER,20);

        System.out.println(DateUtil.until(startDate));
        System.out.println(DateUtil.until(startDate,endDate));
    }
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值