Code:
<%
wYear=Request.QueryString("wYear")
IF wYear = "" THEN wYear=Request.Form("wYear")
IF wYear = "" OR wYear < 1753 OR wYear > 9999 THEN wYear = DATEPART("yyyy",now())
wMonth=Request.QueryString("wMonth")
IF wMonth = "" THEN wMonth=Request.Form("wMonth")
IF wMonth = "" THEN wMonth=DATEPART("m", now())
szMonth = MonthName(wMonth)
SET conn=server.createobject("ADODB.connection")
conn.Open "DATABASE=[database name];DSN=[DSN Name];UID=[login];Password=[password];"
szSQL = "SELECT DATEPART(dd, RecDate) AS DayOfMonth, DATEPART(dw, RecDate) AS WkDay, " & _
"DaysTopCustomer FROM SalesRecords "& _
"WHERE DATEPART(yyyy, RecDate) = " & wYear & "AND DATEPART(mm, RecDate) = " & wMonth & _
" GROUP BY DATEPART(dd, RecDate), DATEPART(dw, RecDate) "& _
"ORDER BY DATEPART(dd, RecDate)"
SET rs1=conn.Execute(szSQL)
'INITIALIZE DAY ARRAY
lc = 0
dim d(31)
for lc = 1 to 31
D(lc) = " "
next
'loop through records for the month & assign to D array.
DO WHILE NOT rs1.eof 'DAY ASSIGNMENT LOOP
TempD = rs1("DayOfMonth")
D(TempD) = rs1("DaysTopCustomer")
IF NOT rs1.eof THEN rs1.movenext
IF rs1.eof then exit do
LOOP
%>
<html><HEAD><TITLE>Single Month View of Perpetual Calendar</TITLE></head>
<BODY><CENTER><H2>Subscription Sales</H2><P>
<H1><%=szMonth%>, <%=wYear%></H1><P>
<TABLE ALIGN=center WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=5>
<TR>
<TD ALIGN=middle width=14%><STRONG>Sunday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Monday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Tuesday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Wednesday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Thursday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Friday</STRONG></TD>
<TD ALIGN=middle width=14%><STRONG>Saturday</STRONG></TD>
</TR>
<TR>
<% 'Determine day of the week the month begins on
tempdate = wMonth & "/1/" & wYear
bwdom = datepart("w", tempdate)
DayOfWeekCounter = 1
'PRINT LEADING BLANK DAYS
SELECT CASE bwdom
CASE 1
DayOfWeekCounter = 1
CASE 2 %>
<TD> </TD><%DayOfWeekCounter = 2
CASE 3 %>
<TD> </TD><TD> </TD><%DayOfWeekCounter = 3
CASE 4 %>
<TD> </TD><TD> </TD><TD> </TD><%DayOfWeekCounter = 4
CASE 5 %>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><%DayOfWeekCounter = 5
CASE 6 %>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><%DayOfWeekCounter = 6
CASE 7 %>
<TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><TD> </TD><%DayOfWeekCounter = 7
CASE ELSE %>
<TD>Beginning Day of Week Error</TD><%
END SELECT
'Determine last day of month & number of weeks
IF wMonth < 12 THEN
ldom = Day(DateAdd("d", -1, wMonth + 1 & "/1/" & wYear))
ELSE
ldom = Day(DateAdd("d", -1, "1/1/" & wYear + 1))
END IF
NumWeeks = 5
IF (bwdom = 6 AND ldom = 31) OR (bwdom = 7 AND ldom > 29) THEN NumWeeks = 6
IF bwdom = 1 AND ldom = 28 THEN NumWeeks = 4
DayCounter = 1
WeekCounter = 1
DO WHILE WeekCounter < NumWeeks + 1
DO WHILE DayOfWeekCounter < 8
IF DayCounter < ldom + 1 THEN %>
<TD ALIGN=left>
<TABLE ALIGN=center width=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
<TR><TD align=left><STRONG><%=DayCounter%></STRONG>
</TR><TR>
<TD align=center><H2><FONT color=ff0000> <%=D(DayCounter)%></FONT></H2>
</TR></TABLE>
<%ELSE%>
<TD ALIGN=middle> </TD>
<%END IF
DayOfWeekCounter = DayOfWeekCounter + 1
DayCounter = DayCounter + 1
LOOP
DayOfWeekCounter = 1
WeekCounter = WeekCounter + 1 %>
</TR><TR>
<%LOOP%>
</TABLE>
<%IF wMonth = 1 THEN%>
<a href="month.asp?wMonth=12%>&wYear=<%=(wYear-1)%>">Previous</a>
<a href="month.asp?wMonth=<%=(wMonth+1)%>&wYear=<%=wYear%>">Next</a>
<%ELSEIF wMonth = 12 THEN%>
<a href="month.asp?wMonth=<%=(wMonth-1)%>&wYear=<%=wYear%>">Previous</a>
<a href="month.asp?wMonth=1&wYear=<%=(wYear+1)%>">Next</a>
<%ELSE%>
<a href="month.asp?wMonth=<%=(wMonth-1)%>&wYear=<%=wYear%>">Previous</a>
<a href="month.asp?wMonth=<%=(wMonth+1)%>&wYear=<%=wYear%>">Next</a>
<%END IF%>
<FORM action="month.asp" method="post" id=form1 name=form1>
<SELECT name="wMonth" size="1">
<%IF wMonth = 1 THEN %>
<option selected value="1">January</option>
<%ELSE%>
<option value="1">January</option>
<%END IF%>
<%IF wMonth = 2 THEN %>
<option selected value="2">February</option>
<%ELSE%>
<option value="2">February</option>
<%END IF%>
<%IF wMonth = 3 THEN %>
<option selected value="3">March</option>
<%ELSE%>
<option value="3">March</option>
<%END IF%>
<%IF wMonth = 4 THEN %>
<option selected value="4">April</option>
<%ELSE%>
<option value="4">April</option>
<%END IF%>
<%IF wMonth = 5 THEN %>
<option selected value="5">May</option>
<%ELSE%>
<option value="5">May</option>
<%END IF%>
<%IF wMonth = 6 THEN %>
<option selected value="6">June</option>
<%ELSE%>
<option value="6">June</option>
<%END IF%>
<%IF wMonth = 7 THEN %>
<option selected value="7">July</option>
<%ELSE%>
<option value="7">July</option>
<%END IF%>
<%IF wMonth = 8 THEN %>
<option selected value="8">August</option>
<%ELSE%>
<option value="8">August</option>
<%END IF%>
<%IF wMonth = 9 THEN %>
<option selected value="9">September</option>
<%ELSE%>
<option value="9">September</option>
<%END IF%>
<%IF wMonth = 10 THEN %>
<option selected value="10">October</option>
<%ELSE%>
<option value="10">October</option>
<%END IF%>
<%IF wMonth = 11 THEN %>
<option selected value="11">November</option>
<%ELSE%>
<option value="11">November</option>
<%END IF%>
<%IF wMonth = 12 THEN %>
<option selected value="12">December</option>
<%ELSE%>
<option value="12">December</option>
<%END IF%>
</SELECT>
Year (1753 to 9999): <input size=6 maxlength=4 name=wYear value=<%=wYear%>>
<input type="submit" name="Jump" VALUE="Jump">
</form>
<a href="calendar.asp">Full Year View</a>
</center></BODY></HTML>