相减计算两个日期相差天数。
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) 设置默认日期