Java8 實現計算兩個日期之間的天數
阿新 • • 發佈:2018-11-27
這幾天給專案組同事做程式碼評審,剛好看到一段求兩個日期之間的天數,看完後覺得寫的太複雜(採用獲取兩個日期的毫秒數,相減後再除以一天的毫秒數得到天數),剛好專案用的是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)); } }