可直接使用,定期維護(hù)數(shù)據(jù)。如數(shù)據(jù)錯誤為跳過節(jié)假日,請及時提醒。
接口地址:http://222.210.127.164:81/holiday/api/day/holiday/addDaysSkipHoliday/{ymdDateString}/{days}
#?ymdDateString:日期字符串 2020-01-01
# days:天數(shù)
核心代碼
1. 跳過周末
public String addDaysSkipWeekend(String ymdDate, int days) throws BusinessException {
? ? Calendar nowTime = Calendar.getInstance();
? ? nowTime.setTime(DateTimeUtil.parseDate(ymdDate));
? ? // 增加天數(shù)
? ? for (int i = 0; i < days; i++) {
? ? ? ? // 增加天數(shù)
? ? ? ? nowTime.add(Calendar.DATE, 1);
? ? ? ? // 判斷日期類型,是否周末
? ? ? ? String isWeek = judgeDateIsHoliday(DateTimeUtil.dateFormat2YmdInteger(nowTime.getTime()));
? ? ? ? log.info("是否周末==={}", isWeek);
? ? ? ? if ("2".equals(isWeek)) {
? ? ? ? ? ? i--;
? ? ? ? }
}
? ? Date nowTimeTime = nowTime.getTime();
? ? return DateTimeUtil.dateFormat2YmdString(nowTimeTime);
}
2. 跳過節(jié)假日
public String addDaysSkipHoliday(String ymdDate, int days) throws BusinessException {
? ? Calendar nowTime = Calendar.getInstance();
? ? nowTime.setTime(DateTimeUtil.parseDate(ymdDate));
? ? // 增加天數(shù)
? ? for (int i = 0; i < days; i++) {
? ? ? ? // 增加天數(shù)
? ? ? ? nowTime.add(Calendar.DATE, 1);
? ? ? ? // 判斷日期類型,是否工作日
? ? ? ? String isWork = judgeDateIsHoliday(DateTimeUtil.dateFormat2YmdInteger(nowTime.getTime()));
? ? ? ? if (!"0".equals(isWork)) {
? ? ? ? ? ? i--;
? ? ? ? }
}
? ? Date nowTimeTime = nowTime.getTime();
? ? return DateTimeUtil.dateFormat2YmdString(nowTimeTime);
}
3. 判斷日期類型
public String judgeDateIsHoliday(String ymdDate) throws BusinessException {
? ? String ymdString = DateTimeUtil.dateFormat2YmdString(DateTimeUtil.parseDate(ymdDate));
? ? HolidayBDayEntity dayEntity = holidayBDayMapper
? ? ? ? ? ? .selectOne(new QueryWrapper<HolidayBDayEntity>().eq("day_ymd", ymdString));
? ? return dayEntity.getDayType();
}