Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2010, 03:54
Lordztein
 
Fecha de Ingreso: abril-2002
Mensajes: 68
Antigüedad: 22 años, 7 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))%>">&lt;&lt;</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))%>">&gt;&gt;</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>&nbsp;</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>&nbsp;</TD>" & vbCrLf
		iPosicion = iPosicion + 1
	wend
	'... y el fin de fila!
	Response.Write vbTab & "</TR>" & vbCrLf

end if




%>
  </TABLE>
  <p>
  </p>
</div>
__________________
Lordztein