Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8 |
您所在的位置:网站首页 › 1268天是多少年零几天 › Java代码实现计算2个日期时间相差几年几月几天,用的jdk1.8 |
用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 |