[JSP] Calendar 달력 - 일정표
by mini_min[JSP] Calendar 달력 - 일정표
❌ CSS 파일 업로드 ❌
<%@page import="java.util.Calendar"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%
Calendar cal = Calendar.getInstance();
int ty = cal.get(Calendar.YEAR);
int tm = cal.get(Calendar.MONTH) +1 ;
int td = cal.get(Calendar.DATE);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) +1 ;
int day = cal.get(Calendar.DATE);
String sy = request.getParameter("year");
String sm = request.getParameter("month");
//처음에 파라미터 없을 때는 null
if( sy != null){
year = Integer.parseInt(sy);
}
if( sy != null){
month = Integer.parseInt(sm);
}
//다시 넣어서 시간 만들었다가 year, month 추출
cal.set(year, month-1, 1);
year = cal.get(Calendar.YEAR);
month = cal.get(Calendar.MONTH)+1;
int week = cal.get(Calendar.DAY_OF_WEEK); // 1일 ~ 7토
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<script type="text/javascript">
function checkDate(obj){
obj.submit();
}
</script>
</head>
<body>
<div class="calendar">
<div class="title">
<!-- action 생략시, 자기 자신이다. -->
<form name="changeForm" action="calendar3.jsp" method="post" >
<select name="year" onchange="checkDate(this.form);">
<% for(int i=year-5; i<=year+5; i++) {%>
<option value="<%=i%>" <%=i==year ? "selected='selected'" : "" %>> <%=i %>년</option>
<% } %>
</select>
<select name="month" onchange="checkDate(this.form);">
<%for(int i=1; i<=12; i++ ) {%>
<option value="<%=i%>" <%=i==month ? "selected='selected'" : ""%>> <%=i %>월 </option>
<%} %>
</select>
</form>
</div>
<table class="table">
<thead>
<tr>
<td>일</td>
<td>월</td>
<td>화</td>
<td>수</td>
<td>목</td>
<td>금</td>
<td>토</td>
</tr>
</thead>
<tbody>
<%
//1일 앞부분
//날짜 하나 복사뜸.
Calendar preCal = (Calendar)cal.clone();
preCal.add(Calendar.DATE, -(week-1));
int preDate = preCal.get(Calendar.DATE);
out.print("<tr class='date'>");
for(int i=1; i<week; i++){
out.print("<td class='gray'>" +(preDate++)+"</td>");
}
//1일부터 ~말일까지 출력
int lastDay = cal.getActualMaximum(Calendar.DATE);
String cls;
for(int i=1; i<=lastDay; i++){
cls = year==ty&&month==tm&&i==td? "today" : "";
out.print("<td class='"+cls+"'> " + i + "</td>");
if(lastDay !=i && (++week)%7 ==1){
out.print("</tr><tr class='schedule'>");
for(int j=1; j<=7; j++){
out.print("<td></td>");
}
out.print("</tr><tr class='date'>");
}
}
//마지막 주
int n=1;
for(int i=(week-1)%7; i<6; i++){
out.print("<td class='gray'>" + (n++) + "</td>");
}
out.print("</tr><tr class='schedule'>");
for(int j=1; j<=7; j++){
out.print("<td></td>");
}
out.print("</tr>");
%>
</tbody>
</table>
<div class="footer">
<a href="calendar3.jsp">오늘날짜로</a>
</div>
</div>
</body>
</html>
'JSP' 카테고리의 다른 글
[JSP] DB Connection (0) | 2022.10.03 |
---|---|
[JSP] Paging 처리 방법 (0) | 2022.10.03 |
[JSP] Calendar 달력 만들기 (0) | 2022.10.03 |
[JSP] 서블릿을 이용한 forward 포워딩 (0) | 2022.10.03 |
[JSP] JSP 에러 처리 : page지시어 / errorPage 속성 (0) | 2022.10.03 |
블로그의 정보
개발자 미니민의 개발로그
mini_min