public class DateUtils {
public static void main(String[] args) throws ParseException {
System.out.println(differentDays("2018-01-01", "2017-01-01"));
}
/**
* @param dateStr1
* @param dateStr2
* @return date1和date2相差的天数,如果date1>date2为正数,否则为负数或零。
* @throws ParseException
*/
public static int differentDays(String dateStr1, String dateStr2) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(sdf.parse(dateStr1));
cal2.setTime(sdf.parse(dateStr2));
int difference = 0;
int minus = -1;
if(cal1.after(cal2)){
minus = 1;
Calendar temp = cal1;
cal1 = cal2;
cal2 = temp;
}
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;
}
}
difference = timeDistance + (day2 - day1);
} else {
difference = day2 - day1;
}
return difference * minus;
}
}
Java实现求两个日期之间相差的天数
最新推荐文章于 2022-07-01 10:00:57 发布