|  |  | 
 |  |  |  | 
 |  |  |         int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ; | 
 |  |  |         if(yearDays!=0){ | 
 |  |  |             yearFloat = yearFloat.add(new BigDecimal(1.0*yearDays).divide(new BigDecimal(365.0), 2,RoundingMode.HALF_UP)); | 
 |  |  |             yearFloat = yearFloat.add(new BigDecimal(1.0*yearDays).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP)); | 
 |  |  |         } | 
 |  |  |         int monthDays = day - DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate) ; | 
 |  |  |         if(monthDays!=0){ | 
 |  |  |             monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 2,RoundingMode.HALF_UP)); | 
 |  |  |             monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP)); | 
 |  |  |         } | 
 |  |  |         return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build(); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         System.out.println(dateCompare.monthFloat); | 
 |  |  |         System.out.println(dateCompare.yearFloat); | 
 |  |  |         System.out.println(dateCompare.yearFloat.multiply(new BigDecimal(365.0))); | 
 |  |  |         System.out.println(new BigDecimal(29.0).divide(new BigDecimal(365.0), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(365.0))); | 
 |  |  |         System.out.println(new BigDecimal(29.0).divide(new BigDecimal(365.0),12,  RoundingMode.HALF_UP).multiply(new BigDecimal(365.0))); | 
 |  |  |     } | 
 |  |  |     public static DateCompare monthYearCompare(Date fromDate,Date toDate ){ | 
 |  |  |         //开始时间往后延伸,除去有效时期 | 
 |  |  | 
 |  |  |  | 
 |  |  |         int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ; | 
 |  |  |         if(yearDays!=0){ | 
 |  |  |             yearFloat = yearFloat.add(new BigDecimal(1.0*yearDays).divide(new BigDecimal(365.0), 2,RoundingMode.HALF_UP)); | 
 |  |  |             yearFloat = yearFloat.add(new BigDecimal(1.0*yearDays).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP)); | 
 |  |  |         } | 
 |  |  |         int monthDays = day - DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate) ; | 
 |  |  |         if(monthDays!=0){ | 
 |  |  |             monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 2,RoundingMode.HALF_UP)); | 
 |  |  |             monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP)); | 
 |  |  |         } | 
 |  |  |         return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build(); | 
 |  |  |     } |