시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크 jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
> 커뮤니티 > 질문과답변 상세보기
커뮤니티 구인구직
사이트등록
현재접속자 새로고침
게시판타이틀 질문과답변 / 상세보기
트위터로 보내기 미투데이로 보내기 싸이월드 공감
추천수 272 | 조회수 3,574 | 등록일 2010-05-10 14:30:32

닉네임

hotensia

이메일

sunju1121@nate.com

제목

공휴일 표시하는 프로그램을 어떻게 짜면 좋을까요?
내용

<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import = "java.sql.*" %>
<%@ page import="java.net.InetAddress" %>
<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<% request.setCharacterEncoding("euc-kr"); %>

<HTML>
<HEAD>
<TITLE>연수원예약현황관리</TITLE>
<link href="schedule_css.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY>

<META http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type='text/css'>
<!--
 a:link  {font-family:"";color:black;text-decoration:none;}
 a:visited {font-family:"";color:black;text-decoration:none;}
 a:hover  {font-family:"";color:black;text-decoration:underline;}
-->
</style>

<%
// Calendar클래스의 인스턴스 cal 생성
java.util.Calendar cal = java.util.Calendar.getInstance();

// JSP 기본객체 request.getParameter를 사용하여 url로 부터 year, month정보를 로드
String strYear = request.getParameter("year");
String strMonth = request.getParameter("month");

// 날짜를 저장하는 변수 year, month, date에 오늘 날짜를 설정
int year = cal.get(java.util.Calendar.YEAR);
int month = cal.get(java.util.Calendar.MONTH);
int date = cal.get(java.util.Calendar.DATE);

// url을 통해 읽어온 표시하고자 하는 날짜의 정보를 설정
if(strYear != null)
{
   year = Integer.parseInt(strYear);
 month = Integer.parseInt(strMonth);
 
 
if(month  == -1)
{
   year = Integer.parseInt(strYear) - 1;
   month = 11;
}

if(month  == 12)
{
   year = Integer.parseInt(strYear) + 1;
   month = 0;

 
}

cal.set(year, month, 1);

int startDay = cal.getMinimum(java.util.Calendar.DATE);
// 표시하고자 하는 달의 마지막 날짜를 설정
int endDay = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH);
// 표시하고자 하는 달의 시작 날짜의 요일을 설정
int start = cal.get(java.util.Calendar.DAY_OF_WEEK);
int newLine = 0;
int j = 0;
%>
<TABLE width="100%" border="0" cellspacing="0" cellpadding="0">
  <TR>         
    <TD valign="bottom" width="25%">
      <%--표시하고자 하는 날짜의 년, 월 정보를 전달--%>
      &nbsp;<a href="index.jsp?year=<%=year-1%>&month=<%=month%>"><font color="#484848">◀</font></a>
      <STRONG><%=year%>년 </STRONG><a href="index.jsp?year=<%=year+1%>&month=<%=month%>"><font color="#484848">▶</font></a>
    </TD>        
    <TD valign="bottom" width="50%">
      <DIV align="center"> &nbsp;&nbsp;<a href="index.jsp?year=<%=year%>&month=<%=month - 1%>"><img src="images/month_left.gif" border="0"></a>
        <font style='font-family:명조; font-size:22pt; color:#333333;'><STRONG><%=month + 1%></STRONG></font>
        <img src="images/month.gif" width="20"><img src="images/month_icon.gif" width="45">
        <a href="index.jsp?year=<%=year%>&month=<%=month + 1%>">&nbsp</a><a href="index.jsp?year=<%=year%>&month=<%=month + 1%>"><img src="images/month_right.gif" width="38" height="30" border="0"></a>
      </DIV>
 </TD>     
    <TD align="right" valign="bottom" width="25%">
      <!--  <DIV align="right"> <a href=index.jsp></a><STRONG>선택일자 <%=year + "-" + (month +1) + "-" + date%>&nbsp;</STRONG> </DIV> -->
      <strong>Today
      <script type="text/javascript">
    <!--
     var tDate = new Date();
     document.write(tDate.getYear()+"년 "+(tDate.getMonth()+1)+"월 "+tDate.getDate()+"일");
     //-->
    </script>
      </strong>
 </TD>
    </TR>
</TABLE>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="10"></td> 
  </tr>
</table>
<TABLE width="100%" border="1" cellpadding="2" cellspacing="0" bordercolor="BBBBBB" style="border-collapse:collapse">
  <TR valign="middle" bgcolor="F1F0EE">
    <TD width='14%' height='30'align='center'>
      <DIV align="center"><img src="images/day01.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day02.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day03.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day04.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day05.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day06.gif" width="60" height="20"></DIV></TD>
    <TD width='14%'align='center'>
      <DIV align="center"><img src="images/day07.gif" width="60" height="20"></DIV></TD>
  </TR>
  <%
for(int index = 1; index < start ; index++ )
{
   out.print("<TD>&nbsp;</TD>");
   newLine++;
}

for(int index = 1; index <= endDay; index++)
{
   String color = (newLine == 0)?"RED":"BLACK"; 
 
 
   // 날짜를 1씩 증가시키면서 테이블을 생성하여 달력을 완성
%>
    <TD width='14%' height='70' align='left' valign='top'><span class="day"><b><a href='write.jsp?year=<%=year%>&month=<%=month+1%>&day=<%=index%>'>
      </a></b></span><b><a href='write.jsp?year=<%=year%>&month=<%=month+1%>&day=<%=index%>'><font color = <%=color %>>
      <%=index%></a></b>
     
      <%

    softband.common.db.DBPool dbpool  = softband.common.db.PoolManager.getInstance("OC4JPool");
 com.evermind.sql.OrclCMTConnection conn = null;
 java.sql.PreparedStatement pstmt   = null;
 java.sql.ResultSet rs      = null;
 boolean isComplete      = false;
 
try{
  conn    =  dbpool.getConnection("test");
  conn.setAutoCommit(false);

 StringBuffer strSql = new StringBuffer();
 strSql.delete(0, strSql.length());

    strSql.append( "SELECT NO, YEAR, MONTH, DAY, TITLE, S_TIME, E_Time, POSITION, CONTENT, MAN_COUNT, ATT_NAME  FROM calendar1 WHERE year='" + year + "' and month='" + ( month + 1 ) + "' and day='" + index +"'" );

    pstmt    =  conn.prepareStatement( strSql.toString() );
 
 rs     =  pstmt.executeQuery();

     
while (rs.next()){
   
%>
      <a href=content.jsp?year=<%=year%>&month=<%=month+1%>&day=<%=index%>&no=<%=rs.getInt("no")%>
   onMouseOver='toggle(document.all.<%="HideShow" + j%>);'
   onMouseOut='toggle(document.all.<%="HideShow" + j%>);'><br>
      <span class="content"><img src="images/arrow_icon.gif" width="3" border="0"> 
      <% 
 String strTitle = rs.getString("title");
 out.println(strTitle); %>
      (<%String strCount = rs.getString("man_count");
 out.println(strCount);%>명) </span></a>
      <div id='<%= "HideShow" + j%>'style="visibility:hidden;position:absolute;left:43px; top:209px; width:104; height:74px; z-index:2" class="layer">
        <table width="104" border="1" cellpadding="1" cellspacing="0" bordercolor="#83C4D9" bgcolor="#FFFFFF" style="border-collapse:collapse">
          <tr>
            <td><table width='104' border='0' cellpadding="2" cellspacing='0' class="layer">
                <tr bgcolor="#FFFFFF">
                  <td width="100" height="12"><img src="images/arrow_icon.gif" width="3" border="0">
                    기관명<br>
                    : <%=strTitle%>
                    <img src="images/line.gif" width="104" height="1"></td>
                </tr>
                <tr bgcolor="#FFFFFF">
                  <td height="12"><img src="images/arrow_icon.gif" width="3" border="0">
                    신청자<br>
                    : <%=rs.getString("att_name")%><br>
                    <img src="images/line.gif" width="104" height="1"></td>
                </tr>
                <tr bgcolor="#FFFFFF">
                  <td height="12"><img src="images/arrow_icon.gif" width="3" border="0">
                    시설<br>
                    : <%=rs.getString("position")%><br>
                    <img src="images/line.gif" width="104" height="1"></td>
                </tr>
                <tr bgcolor="#FFFFFF">
                  <td height="12"><img src="images/arrow_icon.gif" width="3" border="0">
                    인원<br>
                    : <%=rs.getString("man_count")%>명<br>
                    <img src="images/line.gif" width="104" height="1"></td>
                </tr>
                <tr bgcolor="#FFFFFF">
                  <td height="12"><img src="images/arrow_icon.gif" width="3" border="0">
                    기간<br>
                    : <%=rs.getString("s_time")%></td>
                </tr>
              </table></td>
          </tr>
        </table>
      </div>
    <%
j = j+1;  
}
 

 conn.commit();
 conn.setAutoCommit(true);
 isComplete = true;

 rs.close();
 pstmt.close();
 dbpool.returnConnection("test",conn);
 
 
  
  }catch(java.sql.SQLException sqle)
 {
  conn.rollback();
  isComplete = false;
 }
 catch(Exception e)
 {
  e.printStackTrace(System.out);
  isComplete = false;
 }
  finally
 {
         if(rs!=null)   try { rs.close(); } catch(Exception e) {}
         if(pstmt!=null)  try { pstmt.close();} catch(Exception e) {}
         if(conn!=null)  try { dbpool.returnConnection("test",conn);} catch(Exception e) {}
 }
 
 
 
%>
    <%
newLine++;

if(newLine == 7){
 out.print("</TR>");
if(index <= endDay){
 out.print("<TR>");
}
newLine=0;
}
}

while(newLine > 0 && newLine < 7)
{
 out.print("<TD>&nbsp;</TD>");
 newLine++;
}
%>
</TABLE>
 
<SCRIPT LANGUAGE="JavaScript">
<!--
function toggle(e) {
   if(e.style.visibility=="hidden") {
      e.style.top = event.y;
      e.style.left = event.x;
      e.style.visibility="visible";
     }
     else
     {
       e.style.visibility="hidden";
     }
}
-->
</SCRIPT>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><img src="images/text.gif" width="600" height="45"> </td>
  </tr>
</table>
<table width="630" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="100">&nbsp;</td>
  </tr>
</table>
</BODY>
</HTML>

위와 같은 달력프로그램에서 공휴일을 표시할수 있는 프로그램을 추가하고 싶은데요..

아시는 분 빠른 답변 부탁드립니다.

추천스크랩소스보기 목록
검무혈신 2010-05-10 18:09:34
답글

토,일 등의 규칙적인 공휴일은 쉽게 표시가 가능하지만,
5월5일과 같은 지정된 휴일이나 음력으로 쉬는 부처님날과 같은 날들은
따로 변수에 해당 일자를 지정해두셔야 합니다.

이전게시글 트리구조 질문 드립니다. 2010-04-30 09:41:05
다음게시글 토요일 파란색으로 표시하고 싶어요.. 2010-05-11 10:18:44