|
|
@@ -129,6 +129,85 @@ public class TimeUtil {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * time在x天内 x为正,代表x天前,为负,代表-x天后
|
|
|
+ * @param time 判断的时间点
|
|
|
+ * @param x 从今天24点算起,x天内,x可以为负
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean isTimeInXDay(long time, int x) {
|
|
|
+ time = time < 10_000_000_000L ? time * 1000 : time;//秒的时间戳为10位数,要x1000 10_000_000_000L对应时间为2286-11-21 01:46:40
|
|
|
+ Calendar timeCalendar = Calendar.getInstance();
|
|
|
+ timeCalendar.setTimeInMillis(time);
|
|
|
+ //今日24点的时间
|
|
|
+ Calendar cur24Calendar = Calendar.getInstance();
|
|
|
+ applyDayEnd(cur24Calendar);
|
|
|
+ if(x < 0) {
|
|
|
+ boolean isBeforeCur24 = timeCalendar.before(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeInXDay", "isBeforeCur24", isBeforeCur24, cur24Calendar.getTimeInMillis());
|
|
|
+ cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
|
|
|
+ boolean isAfterXDay = timeCalendar.after(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeInXDay", "isAfterXDay", isAfterXDay, cur24Calendar.getTimeInMillis());
|
|
|
+ return isBeforeCur24 && isAfterXDay;
|
|
|
+ } else if(x > 0) {
|
|
|
+ boolean isAfterCur24 = timeCalendar.after(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeInXDay", "isAfterCur24", isAfterCur24, cur24Calendar.getTimeInMillis());
|
|
|
+ cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
|
|
|
+ boolean isBeforeXDay = timeCalendar.before(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeInXDay", "isBeforeXDay", isBeforeXDay, cur24Calendar.getTimeInMillis());
|
|
|
+ return isBeforeXDay && isAfterCur24;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * time在x天前或者-x天后 x为正,代表x天前,为负,代表-x天后
|
|
|
+ * @param time 判断的时间点
|
|
|
+ * @param x 从今天24点算起,x天内,x可以为负
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean isTimeXDay(long time, int x) {
|
|
|
+ time = time < 10_000_000_000L ? time * 1000 : time;//秒的时间戳为10位数,要x1000 10_000_000_000L对应时间为2286-11-21 01:46:40
|
|
|
+ Calendar timeCalendar = Calendar.getInstance();
|
|
|
+ timeCalendar.setTimeInMillis(time);
|
|
|
+ //今日24点的时间
|
|
|
+ Calendar cur24Calendar = Calendar.getInstance();
|
|
|
+ applyDayEnd(cur24Calendar);
|
|
|
+ if(x > 0) {
|
|
|
+ cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
|
|
|
+ boolean isAfterXDay = timeCalendar.after(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeXDay", "isAfterXDay", isAfterXDay, cur24Calendar.getTimeInMillis());
|
|
|
+ return isAfterXDay;
|
|
|
+ } else if(x < 0) {
|
|
|
+ cur24Calendar.add(Calendar.DAY_OF_MONTH, x);
|
|
|
+ boolean isBeforeXDay = timeCalendar.before(cur24Calendar);
|
|
|
+ if(TestUtil.isDev())
|
|
|
+ LogUtil.println("isTimeXDay", "isBeforeXDay", isBeforeXDay, cur24Calendar.getTimeInMillis());
|
|
|
+ return isBeforeXDay;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ //时间转换为一天的开始,也是前一天的结束
|
|
|
+ public static Calendar applyDayBegin(Calendar calendar){
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ return calendar;
|
|
|
+ }
|
|
|
+ //时间转换为一天的结束,也是后一天的开始
|
|
|
+ public static Calendar applyDayEnd(Calendar calendar){
|
|
|
+ calendar.set(Calendar.HOUR_OF_DAY, 24);
|
|
|
+ calendar.set(Calendar.MINUTE, 0);
|
|
|
+ calendar.set(Calendar.SECOND, 0);
|
|
|
+ calendar.set(Calendar.MILLISECOND, 0);
|
|
|
+ return calendar;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 是否大于今天
|
|
|
*/
|
|
|
public boolean big2Today(String dateStr, String dateFormat){
|