package com.utils; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class WorkYearUtil { public static void main(String[] args){ Date d1 = new Date(); String a ="2020-02-02"; SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = simpleDateFormat.parse(a); } catch (ParseException e) { e.printStackTrace(); } int s = yearCompare(d1, date);//小 大 System.out.println(s); } public static int yearCompare(Date fromDate, Date toDate){ DayCompare result = dayComparePrecise(fromDate, toDate); double month = result.getMonth(); double year = result.getYear(); //返回2位小数,并且四舍五入 DecimalFormat df = new DecimalFormat("######0.0"); String format = df.format(year + month / 12); double dou = Double.parseDouble(format); double floor = Math.floor(dou); int i = (int) floor; return i; } public static DayCompare dayComparePrecise(Date fromDate, Date toDate){ Calendar from = Calendar.getInstance(); from.setTime(fromDate); Calendar to = Calendar.getInstance(); to.setTime(toDate); int fromYear = from.get(Calendar.YEAR); int fromMonth = from.get(Calendar.MONTH); int fromDay = from.get(Calendar.DAY_OF_MONTH); int toYear = to.get(Calendar.YEAR); int toMonth = to.get(Calendar.MONTH); int toDay = to.get(Calendar.DAY_OF_MONTH); int year = toYear - fromYear; int month = toMonth - fromMonth; int day = toDay - fromDay; DayCompare dayCompare =new DayCompare(); dayCompare.setDay(day); dayCompare.setMonth(month); dayCompare.setYear(year); return dayCompare; } }
需要用到的类
package com.utils; import java.util.Calendar; import java.util.Date; public class DayCompare { private int year; private int month; private int day; public DayCompare() { } public DayCompare(int year, int month, int day) { this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } @Override public String toString() { return "DayCompare{" + "year=" + year + ", month=" + month + ", day=" + day + '}'; } }