比较两个Date类型的数据相差几年

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 +
                '}';
    }
}
原文地址:https://www.cnblogs.com/cuixiaomeng/p/10369396.html