개발자 미니민의 개발스터디

[JSP] Calendar 달력 - 일정표

by mini_min

JSP

[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

활동하기