欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java计算两个日期相差的天数

程序员文章站 2022-07-12 17:49:48
...

计算不是通过时间戳24小时为一天,单纯是计算两个日期之前相差的天数,例如,2021年11月25日和2021年12月1日相差多少天:

/**
	 * date2比date1多的天数
	 * @param date1
	 * @param date2
	 * @return
	 */
	private  int differentDays(Date date1,Date date2)
	{
		Calendar cal1 = Calendar.getInstance();
		cal1.setTime(date1);

		Calendar cal2 = Calendar.getInstance();
		cal2.setTime(date2);
		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    //不同年
		{
			logger.debug("判断day2 - day1 : " + (day2-day1));
			return day2-day1;
		}
	}