private String getValidLastDay(SimpleDateFormat df, String baseDate) throws Exception {
Calendar cal = Calendar.getInstance();
cal.setTime(df.parse(baseDate));
// 말일 세팅
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
// 휴일체크
int holidayCheck = selectHolidayCheck(df.format(cal.getTime()));
if (holidayCheck == 1) {
// 휴일이면 -1달 이동 후 다시 말일 세팅
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
// 또 휴일이면 한번 더 (필요하면 이 부분을 더 확장 가능)
int secondHolidayCheck = selectHolidayCheck(df.format(cal.getTime()));
if (secondHolidayCheck == 1) {
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
}
}
return df.format(cal.getTime());
}
틀
} else if(selectHolidayValue.equals("28") || selectHolidayValue.equals("29") ||
selectHolidayValue.equals("30") || selectHolidayValue.equals("31")) {
LOGGER.debug(selectHolidayValue);
try {
// 조회한 달
endDate = paramMap.getString("endDate");
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
// 조회한 전달
cal.setTime(df.parse(endDate));
cal.add(Calendar.MONTH, -1);
endDate2 = getValidLastDay(df, df.format(cal.getTime()));
// 조회한 전전달
cal.add(Calendar.MONTH, -1);
endDate3 = getValidLastDay(df, df.format(cal.getTime()));
// 값 설정
nowMonth = endDate;
onePreMonth = endDate2;
twoPreMonth = endDate3;
// 리스트에 추가
endDatelist.add(nowMonth);
endDatelist.add(onePreMonth);
endDatelist.add(twoPreMonth);
for (String date : endDatelist) {
endDateInputList.add(date);
}
LOGGER.debug("DateInputList:]" + endDateInputList);
paramMap.put("depositDateNewCategory", endDateInputList);
paramMap.put("taxDateType", taxDateType);
paramMap.put("depositType1", depositType1);
} catch (Exception e) {
LOGGER.debug("[)-]:" + e.getMessage());
}
}반응형
'JAVA' 카테고리의 다른 글
| csv db비교 (0) | 2025.08.28 |
|---|---|
| 페이징 처리 내용 2 (0) | 2024.06.16 |
| 페이징 처리 내용 (0) | 2024.06.16 |
| Chpter01. 변수 (0) | 2023.03.07 |
| Chapter01. 변수 (0) | 2023.02.23 |