1. 程式人生 > >Java8 實現計算兩個日期之間的天數

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));
    }
}