Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8

您所在的位置:网站首页 杜甫生于几年几月几日 Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8

Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8

#Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8| 来源: 网络整理| 查看: 265

用Java jdk 1.8 代码计算2个时间之间相差了几年几个月几天,返回结果是字符串的形式。下面是实现代码,测试代码,测试结果截图,代码分享链接。

/** * 格式化2个时间的间隔 * * @param start 开始时间 * @param end 结束时间 * @return 两个时间之间的间隔 */ public static String between(LocalDate start, LocalDate end) { long betweenDay = end.toEpochDay() - start.toEpochDay(); if (betweenDay < 0) { return "开始时间大于结束时间,所传参数不OK。。。。"; } int year = end.getYear() - start.getYear(); int month = end.getMonth().getValue() - start.getMonth().getValue(); int day = end.getDayOfMonth() - start.getDayOfMonth(); if (day < 0) { month = month - 1; boolean leapYear = end.getYear() % 4 == 0; if (end.getMonth() == Month.JANUARY) { leapYear = (end.getYear() - 1) % 4 == 0; } day = day + end.getMonth().minus(1).length(leapYear); } if (month < 0) { year = year - 1; month = month + 12; } StringBuilder stringBuilder = new StringBuilder(); if (year > 0) { stringBuilder.append(year).append(" 年 "); } if (month > 0) { stringBuilder.append(month).append(" 月 "); } if (day > 0) { stringBuilder.append(day).append(" 天"); } return stringBuilder.toString(); }

实际测试代码:

/** * 计算2个时间相差多久 * * @author LiXuekai on 2019/9/10 */ public class GetBetweenDaysTest { private LocalDate start; private LocalDate end; @Before public void init() { end = LocalDate.now(); } /** * 测试这个util方法OK不 */ @Test public void test() { // 边界测试 end = LocalDate.of(2020, 3, 1); start = LocalDate.of(2020, 2, 29); System.out.println(TimeUtils.between(start, end)); } }

测试结果截图:

代码分享地址链接:

代码的GitHub上的链接地址



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3