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><a href="calendar.asp?data=<%=DateAdd("m", -1, data)%>"><</td> <td colspan="5" align="center"><%=MonthName(Month(data)) & " " & Year(data)%></td> <td align="right"><a href="calendar.asp?data=<%=DateAdd("m", 1, data)%>">></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:
https://www.aspitalia.com/liste/usag/esempi.aspx?ID=559
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Miglioramenti nelle performance di Angular 16
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- HTML5 con CSS e JavaScript
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)