정보보안공부
JSP_6. 달력만들기 본문
<달력 만들기>
-get방식 이용
## calendar클래스를 이용해 달력을 만들어보자
--> 표에 표시할 년도와 월을 Calendar클래스를 이용해서 년 월을 구한다.
--> Calendar cal = Calendar.getInstance();
--> int yy = cal.get(Calendar.YEAR) 현재 년도를 구한다.
--> int mm = cal.get(Calendar.MONTH) + 1 현재 월을 구한다. Calendar클래스는 월을 0~11로 나타내므로 +1을 해야 우리가 사용하는 월인 1~12월을 나타낼수있다.
--> get방식이므로 ?yy=' '&mm=' '에서 ' ' 안에 들어가는 값을 받아와야 하므로 yy와 mm의 값을 request를 이용해서 받아오는데 문자열로 받아오므로 정수로 변환한다.
--> int yy = Integer.parseInt(request.getParameter("yy");
--> int mm = Integer.parseInt(request.getParameter("mm");
--> try catch를 이용해 예외처리를 해준다.
--> 월이 13월 0월은 존재하지않으므로 해당 월에는 년도와 월을 if문을 이용해 조절
--> get방식이므로 년월이 맞지않을 경우 현재의 년월을 갖도록 설정한다.
--> 해당월의 날짜를 1일로 바꾼다. cal변수는 우리가 사용하는 1~12월을 0~11로 표현하기 때문에 -1을 해주어 cal.set(yy,mm-1,1)로 설정한다.
--> 요일을 알기위해 cal.get(Calendar.DAY_OF_WEEK);을 이용해 1~7로 요일을 표현
--> cal.getActualMaxium(Calendar.DATE); 를 이용해 해당월의 마지막 날짜를 알아낸다.
--> 달력의 형식을 만들어 보자.
--> table안에 tr td를 이용해 표를 그린다.
--> <a href="?yy<%=yy%>&mm=<%=mm%>">'문구'</a> 형식을 통해 년도와 월의 값을 링크를 걸 수 있다. '문구'를 누르면 해당 링크값이 적용된다.
--> ◁◀ ▷ ▶ 을 이용해 년도와 월을 증가 또는 감소 시켰다.
--> for문을 이용해 "<td> </td>"를 이용해 w는 요일을 알려주는 1~7사이 숫자인데 해당월의 1일로 설정하였으므로 1일의 요일값(1~7)을 w로 알수있으므로 1일 전의 공백의 칸을 만들 수 있다.
--> cal.set(yy,mm-1,i) 과 w = cal.get(Calender.DAY_OF_WEEK) 를 이용해 출력하는 날마다의 요일(1:일요일 7:토요일)을 w를 통해 알 수 있다.
--> if문을 이용해 w==1인 일요일을 빨갛게 w==7인 토요일을 파랗게 하였다.
--> else를 이용해 나머지일 경우 그냥 날짜만 출력한다.
--> if(w==7) 을 이용해 토요일일경우 줄바꿈을 해주어야한다. 따라서 "</tr>"을 하고 if(i<lastday)를 이용해 마지막날짜보다 작으면 "<tr>"을 이용해 나머지 날짜를 출력할수 있도록 만든다.
--> 마지막으로 if(w!=7)인경우는 토요일이 아닌경우이다. 토요일이 아닌경우는 토요일까지 빈칸을 만들어 줘야 하므로 for문을 이용해 "<td> </td>"를 이용해 공백의 칸을 생성한다. 생성한뒤 "</tr>"을 이용해 줄을 닫아준다.
--> 완성된 달력의 모습이다. ◁◀ ▷ ▶을 이용하면 달력이 변하는것을 확인할 수 있다.
--> 위와같이 코딩을 할경우에는 아래와같이 마지막날짜까지만 달력을 만들어준다.
--> 마지막 날짜 뒤에 공백의 칸이 만들어 지지 않는다.
## CalendarUtil클래스를 따로만들어 달력을 만들어보자
--> Java Resources 위치에 src 밑에 패키지를 만든뒤 CalendarUtil클래스를 만든다.
--> CalendarUtil클래스를 작성해보자
--> 먼저 윤년을 판단하는 메소드(isLeapYear)를 만든뒤 해당 년월의 마지막날짜를 구해주는 메서드(lastday)를 만든다.
--> 지정 날짜까지의 총일수를 구하는 메서드(totalday)를 만들고 지정 날짜의 요일을 아아내는 메스드(weekday)를 만든다.
--> 네모친 부분을 CalendarUtil클래스를 이용해 작성한다.
'JSP' 카테고리의 다른 글
JSP_8. Gson (0) | 2017.09.19 |
---|---|
JSP_7. Jsoup (0) | 2017.09.15 |
JSP_5. 선언부,표현식,request (0) | 2017.09.15 |
JSP_4. JSP파일 만들어보기 (0) | 2017.09.13 |
JSP_3. HTML 폼태그 사용, JSP파일 만들어보기 (0) | 2017.09.13 |