kyh코딩 공부 블로그
spring Calendar함수 사용해서 달력 만들기 controller 부분 본문
Calendar calendar = Calendar.getInstance(); /*캘린더 객체를 사용하는 부분*/
int firstDayOfWeek = 0; /*첫번째 주*/
int lastDayOfLastWeek = 0; /*마지막 주*/
int lastDayOfMonth = 0; /*달의 마지막 날*/
//getSearchCondition4, getSearchCondition5는 vo객체에서 만들어 주시고
//getSearchCondition4는 년도를 받을 부분, getSearchCondition5는 월을 받을 부분이다.
//밑에 코드는 현재 달력에서 년도와 월에 값이 ""이면 현재 년도와 월을 넣어주는 부분이다.
if ("".equals(vacationVO.getSearchCondition4()) && "".equals(vacationVO.getSearchCondition5())) {
calendar.set(Calendar.DATE, 1);
vacationVO.setSearchCondition4(String.valueOf(calendar.get(Calendar.YEAR)));
vacationVO.setSearchCondition5(String.valueOf(calendar.get(Calendar.MONTH) + 1));
firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); //특정월의 마지막 날짜 구하는 부분
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
lastDayOfLastWeek = calendar.get(Calendar.DAY_OF_WEEK);
}
//jsp에서 년도와 월 데이터 값이 넘어오면 실행되는 부분이다.
//이전달과 다음달을 눌렀을때 사용할 코드를 구현했다.
else {
if ("Y".equals(vacationVO.getPre_mon())) {//이전달
if ("1".equals(vacationVO.getSearchCondition5())) {//mon 검색조건이 1월인 경우
vacationVO.setSearchCondition4(String.valueOf(Integer.parseInt(vacationVO.getSearchCondition4()) - 1));
vacationVO.setSearchCondition5("12");
} else {
vacationVO.setSearchCondition5(String.valueOf(Integer.parseInt(vacationVO.getSearchCondition5()) - 1));
}
} else if ("Y".equals(vacationVO.getNext_mon())) {//다음달
if ("12".equals(vacationVO.getSearchCondition5())) {//mon 검색조건이 12월인 경우
vacationVO.setSearchCondition4(String.valueOf(Integer.parseInt(vacationVO.getSearchCondition4()) + 1));
vacationVO.setSearchCondition5("1");
} else {
vacationVO.setSearchCondition5(String.valueOf(Integer.parseInt(vacationVO.getSearchCondition5()) + 1));
}
}
//다시 값을 받아야하니 리셋을 해준다.
vacationVO.setPre_mon("");
vacationVO.setNext_mon("");
calendar.set(Integer.parseInt(vacationVO.getSearchCondition4()), Integer.parseInt(vacationVO.getSearchCondition5()) - 1, 1);
//현재월 1일 요일
firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
//현재월 마지막 일자
lastDayOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
//현재월 마지막 요일
lastDayOfLastWeek = calendar.get(Calendar.DAY_OF_WEEK);
// 이벤트 일정 데이터
listCalendar = vacationService.listAllowVacation(vacationVO);
listHoildayCalendar = vacationService.listVacaHoilday(vacationVO);
}
//만들어진 데이터 값을 model로 보내준다.
model.addAttribute("firstDayOfWeek", firstDayOfWeek);
model.addAttribute("lastDayOfMonth", lastDayOfMonth);
model.addAttribute("lastDayOfLastWeek", lastDayOfLastWeek);
'코딩연습' 카테고리의 다른 글
javaMaill 이용한 메일 보내기 (0) | 2023.03.24 |
---|---|
CKEDITOR 사용 방법 (0) | 2023.03.09 |
POI 이용한 EXCEL다운로드 (0) | 2023.03.09 |
spring Calendar로 달력만들기 2 jsp부분 (0) | 2023.03.03 |
git hub 연결하기 (1) | 2023.03.03 |