|
@@ -8,6 +8,7 @@ import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
|
import java.time.ZonedDateTime;
|
|
import java.time.ZonedDateTime;
|
|
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
|
|
|
|
|
|
@@ -195,4 +196,40 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
|
|
|
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
|
|
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
|
|
|
return Date.from(zdt.toInstant());
|
|
return Date.from(zdt.toInstant());
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 计算两个日期之间的天数差异,按日期变化计算(只要日期过了一天就算一天)
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param date1 较大的日期(通常是当前日期)
|
|
|
|
|
+ * @param date2 较小的日期
|
|
|
|
|
+ * @return 日期之间的天数差异
|
|
|
|
|
+ */
|
|
|
|
|
+ public static int calculateDateDifference(Date date1, Date date2) {
|
|
|
|
|
+ if (date1 == null || date2 == null) {
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Calendar cal1 = Calendar.getInstance();
|
|
|
|
|
+ cal1.setTime(date1);
|
|
|
|
|
+
|
|
|
|
|
+ Calendar cal2 = Calendar.getInstance();
|
|
|
|
|
+ cal2.setTime(date2);
|
|
|
|
|
+
|
|
|
|
|
+ // 将时分秒和毫秒设为0,只比较日期部分
|
|
|
|
|
+ cal1.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
+ cal1.set(Calendar.MINUTE, 0);
|
|
|
|
|
+ cal1.set(Calendar.SECOND, 0);
|
|
|
|
|
+ cal1.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
+
|
|
|
|
|
+ cal2.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
|
+ cal2.set(Calendar.MINUTE, 0);
|
|
|
|
|
+ cal2.set(Calendar.SECOND, 0);
|
|
|
|
|
+ cal2.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
+
|
|
|
|
|
+ // 计算两个日期之间的毫秒差
|
|
|
|
|
+ long diffInMillis = cal1.getTimeInMillis() - cal2.getTimeInMillis();
|
|
|
|
|
+
|
|
|
|
|
+ // 计算天数差异
|
|
|
|
|
+ return (int) (diffInMillis / (1000 * 60 * 60 * 24));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|