随笔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类型互相转换)