随笔Java Calendar 比较相差几天

Posted 醇氧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随笔Java Calendar 比较相差几天相关的知识,希望对你有一定的参考价值。

Java  Calendar 比较相差几天,考虑跨年问题:

    /**
     * 日历比较相差几天
     * 注:如果两个是日期不相等,后面参数必须大于前面参数,即:cal2 > cal1
     * @param cal1
     * @param cal2
     * @return
     */
    public static int differentDays(Calendar cal1 , Calendar cal2 )
    
        int day1= cal1.get(Calendar.DAY_OF_YEAR);
        int day2 = cal2.get(Calendar.DAY_OF_YEAR);

        int year1 = cal1.get(Calendar.YEAR);
        int year2 = cal2.get(Calendar.YEAR);
        if(year1 != year2)   //同一年
        
            int timeDistance = 0 ;
            for(int i = year1 ; i < year2 ; i ++)
            
                if(i%4==0 && i%100!=0 || i%400==0)    //闰年
                
                    timeDistance += 366;
                
                else    //不是闰年
                
                    timeDistance += 365;
                
            

            return timeDistance + (day2-day1) ;
        
        else    //不同年
        
            System.out.println("判断day2 - day1 : " + (day2-day1));
            return day2-day1;
        
    

   public static void main(String[] args) throws ParseException 

        Calendar inspectCalendar = Calendar.getInstance();
        Calendar currentCalendar = Calendar.getInstance();
        Date  d1 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse("2008-12-31 09:00:00");
        Date  d2 = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse("2009-01-01 09:00:00");
        inspectCalendar.setTime(d2);
        currentCalendar.setTime(d1);
        System.out.println(differentDays(currentCalendar,inspectCalendar));

    

 

以上是关于随笔Java Calendar 比较相差几天的主要内容,如果未能解决你的问题,请参考以下文章

计算两个日期之间相差几天(Date类型与String类型互相转换)

js 怎么求两个日期相差几个月零几天?

java中Calendar日期对象

java中,利用Calendar对象怎么得到天数,和月数,(天数和月数单独拿出来的 不像:yyyy-MM-dd)

Java中计算两个日期相差几天

Java计算两个日期时间相差几天,几小时,几分钟等