⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dateutil.java

📁 在java中应有到几个日期比较的函数(两个日期比较相差多少年、多少月、多少日)
💻 JAVA
字号:
package com.tongye.pub.utils;

import java.util.*;


public class DateUtil
{
    public DateUtil()
    {
    }

    public static int yearsBetween(Date one, Date other)
    {
        if(one.equals(other))return 0;
        Calendar early = Calendar.getInstance();
        Calendar late = Calendar.getInstance();
        if(one.before(other))
        {
            early.setTime(one);
            late.setTime(other);
        }
        else
        {
            early.setTime(other);
            late.setTime(one);
        }

        int year1 = early.get(Calendar.YEAR);
        int month1 = early.get(Calendar.MONTH) + 1;
        int day1 = early.get(Calendar.DAY_OF_MONTH);
        int year2 = late.get(Calendar.YEAR);
        int month2 = late.get(Calendar.MONTH) + 1;
        int day2 = late.get(Calendar.DAY_OF_MONTH);
        int years = year2 - year1;
        if(month1 < month2)return years;
        if(month1 > month2)return years - 1;
        if(day1 <= day2 || month1 == 2 && day1 == 29 && day2 == 28)return years;
        return years - 1;
    }

    public static int monthsBetween(Date one, Date other)
    {
        if(one.equals(other))return 0;
        Calendar early = Calendar.getInstance();
        Calendar late = Calendar.getInstance();
        if(one.before(other))
        {
            early.setTime(one);
            late.setTime(other);
        }
        else
        {
            early.setTime(other);
            late.setTime(one);
        }

        int year1 = early.get(Calendar.YEAR);
        int month1 = early.get(Calendar.MONTH) + 1;
        int day1 = early.get(Calendar.DAY_OF_MONTH);
        int year2 = late.get(Calendar.YEAR);
        int month2 = late.get(Calendar.MONTH) + 1;
        int day2 = late.get(Calendar.DAY_OF_MONTH);
        int months = (year2 - year1) * 12 + (month2 - month1);
        if(day1 > day2 && !(month1 == 2 && month2 == 2 && day1 == 29 && day2 == 28)) months = months - 1;
        return months;
    }

    public static int daysBetween(Date one, Date other)
    {
        return(int) (Math.abs(one.getTime() - other.getTime()) / (1000 * 60 * 60 * 24));
    }

    public static void main(String[] args)
    {
        System.out.println(yearsBetween(StringUtil.stringToDate("20040229"), StringUtil.stringToDate("20050228")));
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -