1. clsCalendar.asp
<%
Class Calendar
	Private cShowDate
	Private cValue
	Private cBorder
	Private cMonth
	Private cYear
	Private arrMonths(12)
	Private cFonts
	Private cFontSize
	Private cShowNav
	Private cShowForm
	Private Sub  Class_Initialize()
	cBorder = True
	arrMonths(1) = "1"
	arrMonths(2) = "2"
	arrMonths(3) = "3"
	arrMonths(4) = "4"
	arrMonths(5) = "5"
	arrMonths(6) = "6"
	arrMonths(7) = "7"
	arrMonths(8) = "8"
	arrMonths(9) = "9"
	arrMonths(10) = "10"
	arrMonths(11) = "11"
	arrMonths(12) = "12"
	cValue = Now
	cMonth = Month(Now)
	cYear = Year(Now)
	cFonts = "Verdana"
	cFontSize = 2
	cShowNav = False
	cShowForm = False
	cShowDate = False
	End Sub
	Private Sub Class_Terminate()
	End Sub
	Public Property Let Border(byRef uBorder)
	cBorder = uBorder
	End Property
	Public Property Get Border()
	Border = cBorder
	End Property
	Public Property Get Value()
	Value = cValue
	End Property
	Public Property Let Value(byRef uValue)
	cValue = uValue
	cMonth = Month(uValue)
	cYear = Year(uValue)
	End Property
	Public Property Let CalMonth(byRef uMonth)
	cMonth = uMonth
	End Property
	Public Property Get CalMonth()
	CalMonth = cMonth
	End Property
	Public Property Let CalYear(byRef uYear)
	cYear = uYear
	End Property
	Public Property Get CalYear()
	CalYear = cYear
	End Property
	Public Property Let Fonts(byRef uFonts)
	cFonts = uFonts
	End Property
	Public Property Get Fonts()
	Fonts = cFonts
	End Property
	Public Property Let FontSize(byRef uFontSize)
	cFontSize = uFontSize
	End Property
	Public Property Get FontSize()
	FontSize = cFontSize
	End Property
	Public Property Let ShowNav(byRef uShowNav)
	cShowNav = uShowNav
	End Property
	Public Property Get ShowNav()
	ShowNav = cShowNav
	End Property
	Public Property Let ShowForm(byRef uShowForm)
	cShowForm = uShowForm
	End Property
	Public Property Get ShowForm()
	ShowForm = cShowForm
	End Property
	Public Property Let ShowDate(byRef uShowDate)
	cShowDate = uShowDate
	End Property
	Public Sub Display
	If cShowNav or cShowForm Then
	Select Case request("CalAction")
	Case "back"
	cYear = request("currYear")
	If request("currMonth") < 1 Then
	cMonth = 12
	cYear = request("currYear") - 1
	Else
	cMonth = request("currMonth")
	End If
	Case "forward"
	cYear = request("currYear")
	If request("currMonth") > 12 Then
	cMonth = 1
	cYear = request("currYear") + 1
	Else
	cMonth = request("currMonth")
	End If
	Case "goto"
	cMonth = request("currMonth")
	If request("currYear") <> "" Then
	cYear = Int(request("currYear"))
	End IF
	End Select
	End If
	cDay = Weekday(arrMonths(cMonth) & "/" & 1 & "/" & cYear)
	Days = DaysInMonth()
	If cBorder Then%>
	<table border="0" cellpadding=0 style="width:100%;">
	<tr>
		<td bgcolor="#FFFFFF">
			<%End If%>
			<table border="0" cellspacing=1 cellpadding=1 style="width:100%;">
			<tr>
				<%If cShowNav Then%>
				<td align="center" class="caldateprev"><a href="<%= Request.ServerVariables("SCRIPT_NAME") %>?CalAction=back&currMonth=<%=cMonth - 1%>&currYear=<%=cYear%>" style="text-decoration:none;" class="caldate">«</a></td>
				<td colspan="5"align="center" class="caldate"><%=cYear%>년 <%=arrMonths(cMonth)%>월</td>
				<td align="center" class="caldatenext"><a href="<%= Request.ServerVariables("SCRIPT_NAME") %>?CalAction=forward&currMonth=<%=cMonth + 1%>&currYear=<%=cYear%>" style="text-decoration:none;" class="caldate">»</a></td>
				<%Else%>
				<td colspan="7"align="center" bgcolor="#666666"><font color="#FFFFFF" size=<%=cFontSize%> face="<%=cFonts%>"><b><%=arrMonths(cMonth) & " " & cYear%></b></font></td>
				<%End If%>
			</tr>
			<tr>
				<td class="yoiltitle">일</td>
				<td class="yoiltitle">월</td>
				<td class="yoiltitle">화</td>
				<td class="yoiltitle">수</td>
				<td class="yoiltitle">목</td>
				<td class="yoiltitle">금</td>
				<td class="yoiltitle">토</td>
			</tr>
			<tr>
				<%i = 1
				For j = 1 to cDay - 1%>
				<td class="calempty"></td>
				<%If i > 6 Then
				response.write("</tr><tr>")
				i = 0
				End If
				i = i + 1
				Next
				For j = 1 to Days%>
				<td class="calday <% If i=1 Then %>sunday<% ElseIf i=7 Then %>saturday<% End if %>"><%=j%></td>
				<%If i > 6 And j <= Days - 1 Then
				response.write("</tr><tr>")
				i = 0
				End If
				i = i + 1
				Next
				If i > 1 Then
				For m = i to 7%>
				<td class="calempty"></td>
				<%Next
				End IF%>
			</tr>
			</table>
			<%If cBorder Then%>
		</td>
	</tr>
	</table>
	<%End If
	If cShowForm Then BottomForm
	End Sub
	Private Sub BottomForm%>
	<table border="0" cellspacing=1 cellpadding=1 width=200>
	<form method="GET" action="<%= Request.ServerVariables("SCRIPT_NAME") %>">
	<tr>
		<td align="right" width="25%"><font color="#000000" size=<%=cFontSize%> face="<%=cFonts%>"><b>Month</b></font></td>
		<td>
			<select name="currMonth">
			<%For i = 1 to 12%>
			<option value=<%=i%><%If i = Int(cMonth) Then response.write " Selected"%>><%=arrMonths(i)%></option>
			<%Next%>
			</select>
		</td>
		<td align="right" width="25%"><font color="#000000" size=<%=cFontSize%> face="<%=cFonts%>"><b>Year</b></font></td>
		<td><input type="text" name="currYear" maxlength=4 size=4  value="<%=cYear%>"></td>
	</tr>
	<tr><td colspan=4 align="right"><input type="submit" value="GO"></td></tr>
	<input type="hidden" name="calAction" value="goto">
	</form>
	</table>
	<%
	End Sub
	Private Function DaysInMonth()
	Select Case cMonth
	Case 1,3,5,7,8,10,12
	DaysInMonth = 31
	Case 4,5,6,9,11
	DaysInMonth = 30
	Case 2
	If cYear Mod 4 Then
	DaysInMonth = 28
	Else
	DaysInMonth = 29
	End If
	Case Else
	Exit Function
	End Select
	End Function
End Class
%>