#559 - Creare un calendario con Classic ASP

ASP.NET ha un oggetto Calendar molto potente, che permette con molta semplicità l'inserimento di un calendario.
Con ASP, come per tanti altri ambiti, ci tocca scrivere un po' di codice, ma alla fine con un po' di sforzo è possibile arrivare allo stesso identico risultato visivo.
Questo calendar dunque sfrutta gli stessi principi e mostra a video un calendario completo, a prescindere dal mese, con i link per passare al mese precendente piuttosto che a quello successivo.

<%
Session.LCID = 1040

' se non passiamo nessun valore parte dalla data odierna
If Request("data") ="" then
data = Date()
else
data = CDate(Request("data"))
end if

mese = Month(data)
anno = Year(data)

' conta il numero di giorni in un mese
function giornidelmese(mese, anno)
DataInizio = CDate("01/" & mese & "/" & anno)
DataFine = DateAdd("m", 1, DataInizio)
giornidelmese = DateDiff("d", DataInizio, DataFine)
end function

%>
<table border="1" cellpadding="0" cellspacing="0" bordercolor=red width="300">
<tr>

"><</td>

<td colspan="5" align="center"><%=MonthName(Month(data)) & " " & Year(data)%></td>

">></td>

</tr>
<tr bgcolor="#C0C0C0"><td>D</td><td>L</td><td>M</td><td>M</td>
<td>G</td><td>V</td><td>S</td></tr>
<%
DataInizio = CDate("01/" & mese & "/" & anno)

' saltiamo primi giorni della settimana
for i = 1 to WeekDay(DataInizio)-1
if i = 1 then Response.Write "<tr>"
Response.write "<td bgcolor=gray> </td>"
next

'mostriamo il calendario
for i = 1 to giornidelmese(mese,anno)
data = Cdate(( i & "/" & mese & "/" & anno))
if WeekDay(data) = 1 then Response.Write "<tr>"
Response.Write("<td align=""center"">" & i & "</td>")

if WeekDay(data) = 7 then Response.Write "</tr>"
next

' saltiamo primi giorni della settimana
for j = WeekDay(Data)+1 to 7
Response.write "<td bgcolor=gray> </td>"
if j mod 7 = 0 then Response.Write "</tr>" : exit for
next


%>
</table>


Con qualche piccolo ritocco è possibile rendere cliccabili anche i singoli giorni per usarlo proprio come quello di ASP.NET.

Per vedere all'opera questo script:
http://www.aspitalia.com/liste/usag/esempi.aspx?ID=559


Approfondimenti
Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.