jdk1.8计算两日期之间相差年份月份天数

public static void main(String[] args) throws Exception {
	 String startStr = "2019-08-15"; //开始日期
	 String endStr = "2019-10-03";//结束日期
     SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
     Date startDate = sf.parse(startStr);
     Date endDate = sf.parse(endStr);
     Integer startYear=Integer.valueOf(String.format("%tY", startDate));
     Integer startMon=Integer.valueOf(String .format("%tm", startDate));
     Integer startDay=Integer.valueOf(String .format("%td", startDate));
     Integer endYear=Integer.valueOf(String.format("%tY", endDate));
     Integer endMonth=Integer.valueOf(String .format("%tm", endDate));
     Integer endDay=Integer.valueOf(String .format("%td", endDate));

	 LocalDate start = LocalDate.of(startYear, startMon, startDay);
	 LocalDate end = LocalDate.of(endYear, endMonth, endDay);

	 System.out.println("相差年数: " + Period.between(start, end).getYears());
	 System.out.println("相差月数: " + Period.between(start, end).getMonths());
	 System.out.println("相差天数: " + Period.between(start, end).getDays());

	 //计算开始日期到本月月末的天数
	 LocalDate lastday = start.with(TemporalAdjusters.lastDayOfMonth());
	 System.out.println("本月最后一天 " + lastday);

	 //计算相差天数
	 Period between = Period.between(start, lastday);
	 System.out.println("开始日期: " + start);
	 System.out.println("结束日期: " + lastday);
	 System.out.println("days: " + between.getDays());
}

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值