Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

kyh코딩 공부 블로그

spring Calendar함수 사용해서 달력 만들기 controller 부분 본문

코딩연습

spring Calendar함수 사용해서 달력 만들기 controller 부분

킴용현 2023. 3. 3. 16:31
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