[Day 20 | JSP] 달력.jsp

y♡ding·2024년 11월 8일
0

데브코스 TIL

목록 보기
133/163
<!-- calendar1.jsp -->
<%--
  Created by IntelliJ IDEA.
  User: kevin
  Date: 2024-11-07
  Time: 오후 3:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<!-- calendar1.jsp -->

<form action="calendat1_ok.jsp" method="post">
    년도 :
    <select name="year">
        <option value="2023">2023</option>
        <option value="2024">2024</option>
        <option value="2026">2025</option>
    </select>

    월:
    <select name="month">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
    </select>

    <input type="submit" value="달력 보기" />
</form>

</body>
</html>

----------------------------------
<!-- calendar1_ok.jsp -->
<%--
  Created by IntelliJ IDEA.
  User: leehayeon
  Date: 2024. 11. 8.
  Time: 09:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Calendar" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
Hello Calendar<br/>
<%
    int year = Integer.parseInt(request.getParameter("year"));
    int month = Integer.parseInt(request.getParameter("month"));

    Calendar startCalendar = Calendar.getInstance();
    Calendar endCalendar = Calendar.getInstance();

    startCalendar.set(year, month - 1, 1);
    endCalendar.set(year, month, 1 - 1);

    int startDayOfWeek = startCalendar.get(Calendar.DAY_OF_WEEK);
    int endDate = endCalendar.get(Calendar.DATE);
    int endDayOfWeek = endCalendar.get(Calendar.DAY_OF_WEEK);

    out.println("<table border='1' cellspacing='0' width='600' height='400'>");
    out.println("<tr>");
    out.println("<td>일요일</td><td>월요일</td><td>화요일</td><td>수요일</td><td>목요일</td><td>금요일</td><td>토요일</td>");
    out.println("</tr>");

    out.println("<tr>");
    for (int i = 1; i < startDayOfWeek; i++) {
        out.print("<td></td>");
    }

    for (int i = 1, n = startDayOfWeek; i <= endDate; i++, n++) {
        if (n % 7 == 1) {
            out.println("<tr>");
        }

        if (n % 7 == 0) {
            out.print("<td bgcolor='blue'>" + i + "</td>");
        } else if (n % 7 == 1) {
            out.print("<td bgcolor='red'>" + i + "</td>");
        } else {
            out.print("<td>" + i + "</td>");
        }

        if (n % 7 == 0) {
            out.println("</tr>");
        }
    }

    for (int i = endDayOfWeek; i <= 6; i++) {
        out.print("<td></td>");
    }

    out.println("</tr>");
    out.println("</table>");
%>
</body>
</html>
-------------------------------------------------------------------
<!-- JSP와 html 코드 분리 / StringBuilder 수정 과정 웬만하면 필 -->
<%--
  Created by IntelliJ IDEA.
  User: leehayeon
  Date: 2024. 11. 8.
  Time: 09:48
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Calendar" %>
<%
    int year = Integer.parseInt(request.getParameter("year"));
    int month = Integer.parseInt(request.getParameter("month"));

    Calendar startCalendar = Calendar.getInstance();
    Calendar endCalendar = Calendar.getInstance();

    startCalendar.set(year, month - 1, 1);
    endCalendar.set(year, month, 1 - 1);

    int startDayOfWeek = startCalendar.get(Calendar.DAY_OF_WEEK);
    int endDate = endCalendar.get(Calendar.DATE);
    int endDayOfWeek = endCalendar.get(Calendar.DAY_OF_WEEK);

    StringBuilder sb = new StringBuilder();
    sb.append("<table border='1' cellspacing='0' width='600' height='400'>");
    sb.append("<tr>");
    sb.append("<td>일요일</td><td>월요일</td><td>화요일</td><td>수요일</td><td>목요일</td><td>금요일</td><td>토요일</td>");
    sb.append("</tr>");

    sb.append("<tr>");
    for (int i = 1; i < startDayOfWeek; i++) {
        sb.append("<td></td>");
    }

    for (int i = 1, n = startDayOfWeek; i <= endDate; i++, n++) {
        if (n % 7 == 1) {
            sb.append("<tr>");
        }

        if (n % 7 == 0) {
            sb.append("<td bgcolor='blue'>" + i + "</td>");
        } else if (n % 7 == 1) {
            sb.append("<td bgcolor='red'>" + i + "</td>");
        } else {
            sb.append("<td>" + i + "</td>");
        }

        if (n % 7 == 0) {
            sb.append("</tr>");
        }
    }

    for (int i = endDayOfWeek; i <= 6; i++) {
        sb.append("<td></td>");
    }

    sb.append("</tr>");
    sb.append("</table>");
%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%= sb.toString() %>

</body>
</html>

0개의 댓글

관련 채용 정보