<%
'_______________________________
' DATABASE CONNECTION
'_______________________________
Dim cnn
Dim rst1
Dim rst2
Dim sql1
Dim sql2
set cnn=server.CreateObject("ADODB.Connection")
set rst1=server.CreateObject("ADODB.Recordset")
set rst2=server.CreateObject("ADODB.Recordset")
cnn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("schedule.mdb"))
dim qsDate
qsDate=request.querystring("date")
if qsDate="" then
qsDate=now()
end if
if isDate(qsDate) then
'Start the Border Table
response.write("
" & chr(13))
response.write(" " & chr(13))
response.write(" ![]() | " & chr(13))
response.write(" ![]() | " & chr(13))
response.write(" ![]() | " & chr(13))
response.write("
" & chr(13))
response.write(" " & chr(13))
response.write(" ![]() | " & chr(13))
response.write(" " & chr(13))
DrawCalendarMonth (qsDate)
'Close the Border Table
response.write(" | " & chr(13))
response.write(" ![]() | " & chr(13))
response.write("
" & chr(13))
response.write(" " & chr(13))
response.write(" ![]() | " & chr(13))
response.write(" ![]() | " & chr(13))
response.write(" ![]() | " & chr(13))
response.write("
" & chr(13))
response.write("
" & chr(13))
else
response.write("
" & chr(13))
if qsDate="" then
response.write("You didn't enter a date. Append "?date=", followed by the date to the URL.
Example: http://server/calDraw.asp?date=2/7/01
" & chr(13))
else
response.write("The Date you entered (" & qsDate & ") is not valid.
" & chr(13))
end if
end if
'===================================================
Sub DrawNormalDay(DayNumber)
Dim myDate
myDate = Month(qsDate)&"/"&DayNumber&"/"&Year(qsDate)
' Draws a day cell - date is in current month
' The response.write's are separate lines for clarity only
'===================================================
' CLICK TO OPEN NEW WINDOW
'======================================================
response.write(" ")
response.write("" & DayNumber)
' _______________________________________
' SELECT ISLAMIC DATE & ENGLISH DATE
' _______________________________________
sql1 = "SELECT table.EnglishDate, table.IslamicDay FROM [table] WHERE (((table.EnglishDate)=#"&myDate&"#));"
set rst1=cnn.Execute(sql1)
if rst1.eof=false then
response.write( " "& rst1("IslamicDay"))
response.write(" | " & chr(13))
else
end if
End Sub
Sub DrawOtherDay(DayNumber)
' Draws a day cell - date is in previous or next month
' The response.write's are separate lines for clarity only
response.write("
")
response.write("")
response.write(DayNumber & " | " & chr(13))
End Sub
Sub DrawCalendarMonth(theDate)
dim thisMonthFirstDay
dim nextMonthFirstDay
dim thisMonthLastDay
dim lastMonthLastDay
dim calBeginDate
dim counter
'Set the Date variables
thisMonthFirstDay=cDate(month(theDate) & "/1/" & year(theDate))
nextMonthFirstDay=dateAdd("m",1,thisMonthFirstDay)
thisMonthLastDay=dateadd("d",-1,nextMonthFirstDay)
lastMonthLastDay=dateadd("d",-1,thisMonthFirstDay)
calBeginDate=dateadd("d",1-weekday(thisMonthFirstDay),thisMonthFirstDay)
'response.write thisMonthFirstDay & "
"
'response.write nextMonthFirstDay & "
"
'response.write thisMonthLastDay & "
"
'response.write lastMonthLastDay & "
"
'response.write calBeginDate & "
"
'Start the Calendar Table
response.write("
" )
'___________________________________
' ISLAMIC MONTH
'___________________________________
Dim myMonth
Dim myYear
Dim myIslamicMonth
Dim myIslamicYear
myMonth = Month(qsDate)
myYear = Year(qsDate)
sql2="SELECT table.IslamicMonth, Month([EnglishDate]) AS [Enlgish Month], table.IslamicYear, Year([EnglishDate]) AS [English Year] FROM [table] GROUP BY table.IslamicMonth, Month([EnglishDate]), table.IslamicYear, Year([EnglishDate]) HAVING (((Month([EnglishDate]))="&myMonth&") AND ((Year([EnglishDate]))="&myYear&")) ORDER BY First(table.EnglishDate);"
' sql2="SELECT table.IslamicYear, table.IslamicMonth, Month([EnglishDate]) AS [Enlgish Month]FROM [table]GROUP BY table.IslamicMonth, Month([EnglishDate])HAVING (((Month([EnglishDate]))="&myMonth&"));"
' sql2 = "SELECT table.EnglishDate, table.IslamicMonth, table.IslamicYear FROM [table] WHERE (((table.EnglishDate)="&myMonth&"));"
set rst2=cnn.Execute(sql2)
response.write ("| "&Monthname(month(theDate),true) & " " & right(year(theDate),4) & " | " )
response.write ("")
Do while rst2.EOF = false
myIslamicMonth = rst2("IslamicMonth")&" "&rst2("IslamicYear")
response.write myIslamicMonth &" "
rst2.MoveNext
loop
' response.write rst2("IslamicYear")
response.write (" |
")
'==========
'Navigation Buttons
response.write( chr(13)& "" & chr(13))
response.write(" | << | " & chr(13))
response.write(" < | " & chr(13))
response.write(" | " & chr(13))
response.write(" > | " & chr(13))
response.write(" >> | " & chr(13))
response.write("
" & chr(13))
response.write(" " & chr(13))
response.write(" | Su | " & chr(13))
response.write(" Mo | " & chr(13))
response.write(" Tu | " & chr(13))
response.write(" We | " & chr(13))
response.write(" Th | " & chr(13))
response.write(" Fr | " & chr(13))
response.write(" Sa | " & chr(13))
response.write("
" & chr(13))
'Start the First Row of Days
response.write(" " & chr(13))
' If the First day of the month is not Sunday, draw previous month's ending days
if weekday(thisMonthFirstDay)>1 then
For counter = day(calBeginDate) to day(lastMonthLastDay)
DrawOtherDay (counter)
Next
end if
' Draw each day of the specified month. After each Saturday, end the row & start a new one
For Counter=1 to day(thisMonthLastDay)
DrawNormalDay (counter)
if weekday(cDate(month(theDate) & "/" & counter & "/" & year(theDate))) = 7 then
response.write("
" & chr(13))
response.write(" " & chr(13))
end if
next
' If the Last day of the month is not Saturday, draw next month's beginning days
if weekday(thisMonthLastDay)<7 then
For counter = 1 to 7-weekday(thisMonthLastDay)
DrawOtherDay (counter)
Next
end if
'End the Last Row and the Calendar
response.write("
" & chr(13))
response.write("
" & chr(13))
end sub
cnn.close
%>