27/07/2010, 03:54
|
| | Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años, 8 meses Puntos: 0 | |
marcar eventos multidia en calendario Buenas, necesito marcar y poner enlace en el calendario de eventos multidia ...
en la base de datos existe un campo fecha inicial y uno de fecha final.
paso e lcodigo que tengo ( de momento solo marca las fechas de actuacion)
podeis ayudarme ?? gracias
Código:
<%
Function NombreMes (mes)
select case mes
case 1
NombreMes = "Enero"
case 2
NombreMes = "Febrero"
case 3
NombreMes = "Marzo"
case 4
NombreMes = "Abril"
case 5
NombreMes = "Mayo"
case 6
NombreMes = "Junio"
case 7
NombreMes = "Julio"
case 8
NombreMes = "Agosto"
case 9
NombreMes = "Septiembre"
case 10
NombreMes = "Octubre"
case 11
NombreMes = "Noviembre"
case 12
NombreMes = "Diciembre"
end select
End Function 'NombreMes
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
'Utilizaba esta variable para depurar
'Dim sOrigen
'iDia, iMes, iAno --> la fecha seleccionada
Dim iDia, iMes, iAno, sEnviado
'iDiasDelMes: numero de días del mes
'iDiaSemana: día de la semana en que cae la fecha
'iPrimerDiaSemanaMes: el día de la semana en que empieza el mes
Dim iDiasDelMes, iDiaSemana, iPrimerDiaSemanaMes
Dim dFecha 'la fecha enterita
'Para pintar la tabla necesito
Dim iActual, iPosicion
'Recojo los valores del form
iDia = Request.Form("Dia")
iMes = Request.Form("Mes")
iAno = Request.Form("Ano")
sEnviado = Request.Form("Enviado")
'sOrigen = "form"
'Establezco la fecha según lo enviado
if sEnviado <> "" then
iDia = CInt(iDia)
iMes = CInt(iMes)
iAno = CInt(iAno)
else
'¿La he enviado desde un link?
if Request.QueryString("Dia") <> "" then
iDia = CInt(Request.QueryString("Dia"))
iMes = CInt(Request.QueryString("Mes"))
iAno = CInt(Request.QueryString("Ano"))
'sOrigen = "qrs"
else
'La pongo a la fecha de hoy
iDia = Day(Now)
iMes = Month(Now)
iAno = Year(Now)
'sOrigen = "auto"
end if
end if
if not IsDate(DateSerial(iAno, iMes, iDia)) then
'Avisamos y utilizamos la de hoy
Response.Write("<b>No es una fecha válida. Se utilizará la fecha de hoy.</b><br>")
dFecha = Date
iMes = Month(dFecha)
iDia = Day(dFecha)
iAno = Year(dFecha)
else
'Formamos la expresión de fecha
dFecha = DateSerial(iAno, iMes, iDia)
end if
'Hallo los días del mes
select case iMes
case 1,3,5,7,8,10,12
iDiasDelMes = 31
case 2
if iAno mod 4 = 0 then
'Año bisiesto!
iDiasDelMes = 29
else
iDiasDelMes = 28
end if
case else
iDiasDelMes = 30
end select
'Hallo el día de la semana
iDiaSemana = DatePart("w", DateSerial(iAno, iMes, iDia))
'Y el día de la semana en que empieza el mes
iPrimerDiaSemanaMes = DatePart("w", DateAdd("d", - iDia+1, DateSerial(iAno, iMes, iDia)), 2)
'Las siguientes líneas las utilizo para depurar. ;-)
'Response.Write(dFecha)
'Response.Write("<br>")
'Response.Write( iDia & "/" & iMes & "/" & iAno & "<br>")
'Response.Write "Dia: " & iDia & ", Mes: " & iMes &", Año: " & iAno & "<br>"
'Response.Write "Días del mes: " & iDiasDelMes & "<br>"
'Response.Write "El mes empieza en: " & iPrimerDiaSemanaMes & "<br>"
'Vamos a pintar la tabla
%>
<style type="text/css">
<!--
.Estilo1 {font-size: 10px}
-->
</style>
<div align="center">
<TABLE BORDER="5" CELLPADDING="1" CELLSPACING="0" class="calendario">
<TR>
<TD bgcolor=#FF6600><center><A HREF="teeeest.asp?Dia=<%=iDia%>&Mes=<%=DatePart("m", DateAdd("m", -1, dFecha))%>&Ano=<%=Year(DateAdd("m", -1, dFecha))%>"><<</A></center></TD>
<TD COLSPAN="5" bgcolor=#CC3300> <CENTER>
<font color="#FFFFFF"><b><%=NombreMes(iMes)& " " & Year(dFecha)%></b></font>
</CENTER> </TD>
<TD bgcolor=#FF6600><center><A HREF="teeeest.asp?Dia=<%=iDia%>&Mes=<%=DatePart("m", DateAdd("m", 1, dFecha))%>&Ano=<%=Year(DateAdd("m", 1, dFecha))%>">>></A></center></TD>
</TR>
<TR>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>L</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>M</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>X</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>J</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>V</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>S</b>
</CENTER> </TD>
<TD><span class="Estilo1"><IMG SRC="espacio.gif" HEIGHT="1" WIDTH="30" ALT="" BORDER="0"><br>
</span> <CENTER class="Estilo1">
<b>D</b>
</CENTER> </TD>
</TR>
<%
'Relleno con blancos si el mes no empieza en Lunes!
if iPrimerDiaSemanaMes <> 1 then
iPosicion = 1
Response.Write vbTab & "<TR> " & VbCrLf
do while iPosicion < iPrimerDiaSemanaMes
Response.Write vbTab & vbTab & "<TD> </TD>" & vbcrlf
iPosicion = iPosicion + 1
loop
end if
' preparo fecha para conexion a base de datos
if len(imes) = 1 then
xmes = 0&imes
end if
'conexion a base de datos
dim con2,rs2,sql2,xdia,diaLink
Set con2 = Server.CreateObject("ADODB.Connection")
con2.Open "Driver={MySQL ODBC 5.1 Driver};server=nombreserver;database=nombreconexions;UID=usuario;PWD=pass"
set rs2 = server.CreateObject("ADODB.Recordset")
sql2 = "SELECT DISTINCT fechaactuacion FROM videos WHERE MONTH(fechaactuacion) = " & xmes & " order by (fechaactuacion) ASC "
rs2.open sql2,con2,1,2
if not rs2.eof = true then
rs2.MoveFirst
end if
'Pintamos el calendario
iActual = 1
iPosicion = iPrimerDiaSemanaMes
do while iActual <= iDiasDelMes
if iPosicion = 1 then
'Empezamos nueva semana, es decir nueva fila
Response.Write vbTab & "<TR>" & VbCrLf
end if
'Pintamos los días
If Not rs2.eof = true then
diaLink = Cint(Trim(day(rs2.Fields("fechaactuacion"))))
end if
if iActual = iDia and iActual = (diaLink) then
'Resaltamos la fecha del día CON LINK
Response.Write (vbTab & vbTab & "<TD CLASS='diaActual'ALIGN='center'><B><A HREF='teeeest.asp?dia="&diaLink&"'>"& iActual & "</A></B><br></TD>" & vbCrLf)
if not rs2.eof = true then
while (Cint(Trim(day(rs2.Fields("fechaactuacion")))) = diaLink)
rs2.MoveNext
wend
end if
elseif iActual = iDia then
'Resaltamos la fecha del dia SIN LINK
Response.Write vbTab & vbTab & "<TD CLASS='diaActual' ALIGN='CENTER' ><B>"& iActual & "</B><br></TD>" & vbCrLf
elseif iActual = (diaLink) then
'Días CON LINKS
Response.Write (vbTab & vbTab & "<TD ALIGN='CENTER'><A HREF='diax.asp?dia="&diaLink&"& mes=" & xmes & "'>" & iActual & "</A><br></TD>" & vbCrLf)
If Not (rs2.EOF = TRUE) Then
If (Cint(Trim(day(rs2.Fields("fechaactuacion")))) = diaLink) Then
rs2.MoveNext
End if
End if
else
'Dias SIN LINKS
Response.Write vbTab & vbTab & "<TD ALIGN='CENTER' >" & iActual & "<br></TD>" & vbCrLf
end if
if iPosicion = 7 then
'Estamos en domingo, cerramos la semana :)
Response.Write vbTab & "</TR>" & vbCrLf
'Pongo iPosicion a cero pq voy a sumarle uno ahorita mismo
iPosicion = 0
end if
'Incrementamos!
iActual = iActual + 1
iPosicion = iPosicion + 1
loop
'Relleno con blancos si no termino en domingo
'Primero compruebo que no sea uno, pues si terminamos en 7 (domingo)
'al incrementar por ultima vez se queda en 1. Típico en los bucles :-)
if iPosicion <> 1 then
while iPosicion <= 7
'Las celdas blancas...
Response.Write vbTab & vbTab & "<TD> </TD>" & vbCrLf
iPosicion = iPosicion + 1
wend
'... y el fin de fila!
Response.Write vbTab & "</TR>" & vbCrLf
end if
%>
</TABLE>
<p>
</p>
</div>
__________________ Lordztein |