정보보안공부

JSP_6. 달력만들기 본문

JSP

JSP_6. 달력만들기

Steady_sp 2017. 9. 15. 22:29

<달력 만들기>

-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>&nbsp;</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>&nbsp;</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
Comments