LocalDate日期相差天数; 当前日期加一天或减一天

时间:2025-02-16 07:51:53

相减计算两个日期相差天数。

    public static void main(String[] args) {
        LocalDate date1 = ("2022-10-01");
        LocalDate date2 = ("2022-10-07");
        Long holiday = () - ();
        ( date2 + "与" + date1 + "相减等于" + holiday);// 2022-10-07与2022-10-01相减等于6
        ("喜迎国庆" + (() - () + 1) + "天乐!");// 喜迎国庆7天乐!
    }

 计算日期相差几年 零几个月 零几天

public static void main(String[] args) {
        // 当前日期   2022-08-22
        LocalDate now = ();
        // 入职日期   2022-08-18
        LocalDate entryDate = ("2022-08-18");
        // 到期日期
        LocalDate dueDate = ("2025-08-17");

        // 司龄:(当前时间-入职日期)/365,保留小数点后1位,单位年;
        long onJobDays = () - ();
        ("在职天数:" + onJobDays);    // 在职天数:4
        BigDecimal companyAge = (onJobDays).divide(("365"), 1, BigDecimal.ROUND_HALF_UP);
        ("司龄:" + companyAge); //  司龄:0.0

        Period between = (entryDate, dueDate);
        ("Period:" + between);    // Period:P2Y11M30D
        ("间隔年数:"+ ()); // 间隔年数:2
        ("间隔月份:" + ());// 间隔月份:11
        ("余下天数:" + ()); // 余下天数:30
        // 合同年限:(到期日期所在月-入职日期所在月)/12,保留小数点后1位,单位年;
        BigDecimal contractYear = (() * 12 + ()).divide(new BigDecimal(12), 1, BigDecimal.ROUND_HALF_UP);
        ("合同年限:" + contractYear);// 合同年限:2.9

        

        // 如果2022-08-18距离2022-08-22要求返回5,那么直接+1即可。
        // 2022-08-18 到 2025-08-17合同年限应为3年的,可以将到期日期+1天。

        // 到期日期增加一天
        (dueDate + "增加一天:" + (1));
        // 到期日期后退一天
        (dueDate + "减一天:" + (-1));
        // 到期日期增加一个月
        (dueDate + "增加一个月:" + (1));
        // 到期日期增加一周
        (dueDate + "增加一周:" + (1));
        // 到期日期增加一个月,并指定15日
        (dueDate + "增加一个月,日期为15日:" + (1).withDayOfMonth(15));
        
        // 输出结果
        // 2025-08-17增加一天:2025-08-18
        // 2025-08-17减一天:2025-08-16
        // 2025-08-17增加一个月:2025-09-17
        // 2025-08-17增加一周:2025-08-24
        // 2025-08-17增加一个月,日期为15日:2025-09-15
    }
plusYears(i) 增加几年,正负数都可。正数,增加几年。负数,后退几年  minusYears(i)则相反。

plusWeeks(i) 增加几周,正负数都可。正数,增加几周。负数,后退几周   minusWeeks(i)则相反。

plusMonths(i) 增加几个月,正负数都可。正数,增加几个月。负数,后退几个月   minusMonths(i)则相反。

plusDays(i) 增加几天,正负数都可。正数,增加几天。负数,后退几天    minusDays(i)则相反。

withDayOfMonth(i) 设置默认日期