测试代码:
String dateStr1 = "2022-5-17";
String dateStr2 = "2022-5-05";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date1 = format1.parse(dateStr1);
Date date2 = format2.parse(dateStr2);
System.out.println("相差了:"+differentDays(date1,date2)+"天!");
System.out.println(differentDayMillisecond(date1,date2));
} catch (ParseException e) {
e.printStackTrace();
}
differentDays实现代码:
public static int differentDays(Date date1,Date date2){
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(date1);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date2);
int day1 = calendar1.get(Calendar.DAY_OF_YEAR);
int day2 = calendar2.get(Calendar.DAY_OF_YEAR);
int year1 = calendar1.get(Calendar.YEAR);
int year2 = calendar2.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{// 同年
return day2-day1;
}
}