Ciao!
una volta così per gioco, ho realizzato un calendario in ASP.
ti posto il codice che chiaramente prima di copiarlo sul tuo sito, sarebbe bene che tu ci dessi un occhiata, visto che l'ho fatto solo sotto forma di esperimento.
codice:
<HTML>
<HEAD>
<TITLE></TITLE>
<META NAME="GENERATOR" Content="Microsoft Visual Studio">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8">
</HEAD>
<BODY>
<div id="calendario">
<style>
a:visite{color: #142454;font-size: 10px;text-decoration:none;}
a:hover{color: #142454;font-size: 10px;text-decoration:none;}
a:active{color: #142454;font-size: 10px;text-decoration:none;}
a:link{color: #142454;font-size: 10px;text-decoration:none;}
.CalendarioIntestazione{
font-family: Arial, Verdana, Helvetica, Sans-Serif;
font-size: 9pt;
font-weight: bold;
}
.CalendarioNomeGiorno {
background-color: #DEECF5;
border: 1px solid sylver;
font-family: Verdana, Arial, Helvetica, Sans-Serif;
font-size: 9px;
text-align: center;
}
.CalendarioGiorno {
background-color: #6699CC;
color: #0000CC;
font-family: Arial, Verdana, Helvetica, Sans-Serif;
font-size: 8pt;
border:1px solid sylver;
}
.CalendarioOggi {
background-color: #ffffff;
border: 1px solid sylver;
font-family: Arial, Verdana, Helvetica, Sans-Serif;
font-size: 8pt;
}
.Calendario {
background-color: #000000;
border: 1px outset white;
visibility: hidden;
position: absolute;
top: 1px;
left: 1px;
}
</style>
<%
' 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 style="width:250;background-color:#6699CC;border:2px solid sylver;">
<tr>
<td>"><span onclick="precedente()" style="font-size:22;font-family:arial;font-weight:bold;color:black;text-decoration:none;"><</span></td>
<td colspan="5" align="center" style="padding-top:2;">
<%
mese = MonthName(month(data))
lettera = ucase(mid(mese,1,1))
mese = lettera & mid(mese,2,len(mese))
anno = year(data)
%>
<form name='selectAnno' ID=Form1>
<SELECT id='mese' size='1' onchange='cambiaMeseAnno()' style="font : bold 10pt arial;color=#004080">
<%
for i = 1 to 12
nomeDelMese = MonthName(month("01/" & i & "/04"))
lettera = ucase(mid(nomeDelMese,1,1))
nomeDelMese = lettera & mid(nomeDelMese,2,len(nomeDelMese))
%>
<OPTION VALUE=<%=nomeDelMese%>> <%=nomeDelMese%>
<%
next
%>
</select>
<select name='anno' size='1' onchange='cambiaMeseAnno()' style="font : bold 10pt arial;color=#004080;width:60;" ID=Select1>
<%
for i = 1900 to 2100
%> <option value=<%=i%>> <%=i%>
<%
next
%> </select>
</td></form>
<td align="right">"><span onclick="successivo()" style="font-size:22;font-family:arial;font-weight:bold;color:black;text-decoration:none;">></span></td>
</tr>
<tr bgcolor="#C0C0C0">
<td class="CalendarioNomeGiorno">Dom</td><td class="CalendarioNomeGiorno">Lun</td>
<td class="CalendarioNomeGiorno">Mar</td><td class="CalendarioNomeGiorno">Mer</td>
<td class="CalendarioNomeGiorno">Gio</td><td class="CalendarioNomeGiorno">Ven</td>
<td class="CalendarioNomeGiorno">Sab</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=#6699CC></td>"
next
'mostriamo il calendario
giornoScelto = Request("data")
if giornoScelto = "" then
giornoScelto = date()
end if
for i = 1 to giornidelmese(mese,anno)
data = Cdate(( i & "/" & mese & "/" & anno))
if WeekDay(data) = 1 then Response.Write "<tr>"
if i = day(giornoScelto) then
Response.Write("<td id='giorno" & i & "' align=""center"" class='CalendarioOggi'>" & i & "</td>")
else
Response.Write("<td id='giorno" & i & "' align=""center"" class='CalendarioGiorno'>" & i & "</td>")
end if
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=#6699CC></td>"
if j mod 7 = 0 then Response.Write "</tr>" : exit for
next
%>
</table>
<div style="width:250;background-color:#6699CC;border-right:2px solid #DEECF5;border-left:2px solid #DEECF5;border-bottom:2px solid #DEECF5;font-family:Sans-Serif;font-size:16;color:#DEECF5;font-weight:bold;">
<%
data_sel = Request("data")
if data_sel <> "" then
Response.Write("Data: " & CDate(data_sel))
else
response.Write("Data: " & date())
end if
%>
</div>
<form name="dataOra" ID=Form2>
<input name="visualizza" type="text" value="<%
data_sel = Request("data")
if data_sel <> "" then
Response.Write("Data: " & CDate(data_sel))
else
response.Write("Data: " & date())
end if
%>" ID=Text1>
</form>
<script language="vbscript">
'************************************************************************************
'Questo script serve se voglio usare delle COMBO per Mese e Anno anzicchè le scritte.
<% if data > "" then
mese1 = month(data) - 1
anno1 = year(data) - 1900
%>
meseCorrente = <%=mese1%>
annoCorrente = <%=anno1%>
document.selectAnno.mese.selectedIndex = meseCorrente
document.selectAnno.anno.selectedIndex = AnnoCorrente
<% else %>
meseCorrente = month(date()) - 1
annoCorrente = year(date()) - 1900
document.selectAnno.mese.selectedIndex = meseCorrente
document.selectAnno.anno.selectedIndex = AnnoCorrente
<% end if%>
function cambiaMeseAnno()
meseSelezionato = document.selectAnno.mese.selectedIndex + 1
annoSelezionato = document.selectAnno.anno.selectedIndex + 1900
giornoSelezionato = <%=day(data_sel)%>
window.top.location.href="calendarioBySpy.asp?data=" & giornoSelezionato & "/" & meseSelezionato & "/" & annoSelezionato & ""
end function
function precedente()
document.selectAnno.mese.selectedIndex = document.selectAnno.mese.selectedIndex - 1
end function
function successivo()
document.selectAnno.mese.selectedIndex = document.selectAnno.mese.selectedIndex + 1
end function
'************************************************************************************
</script>
</div>
</BODY>
</HTML>