Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/11/2010, 08:46
xlokyx
 
Fecha de Ingreso: octubre-2007
Mensajes: 87
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Ayuda con un calendario

uffff como te complicas la vida... jeje
por este foro ronda un calendario mio que puede que te sirva, pero lo voy a "personalizar" un poco para ti, quedaría mas o menos así:
Código PHP:
<?php
$anyo
=date("Y");
$r=0//variable que uso para que cuando cree 4 meses, los siguientes los ponga debajo de estos. Para que quede bien
for($i=1$i<=12$i++) //bucle con los 12 meses del año y sus nombes, que usaremos posteriormente
{
    switch(
$i)
    {
        case 
1:
        
$mes_nombre="Enero";
        break;
        case 
2:
        
$mes_nombre="Febrero";
        break;
        case 
3:
        
$mes_nombre="Marzo";
        break;
        case 
4:
        
$mes_nombre="Abril";
        break;
        case 
5:
        
$mes_nombre="Mayo";
        break;
        case 
6:
        
$mes_nombre="Junio";
        break;
        case 
7:
        
$mes_nombre="Julio";
        break;
        case 
8:
        
$mes_nombre="Agosto";
        break;
        case 
9:
        
$mes_nombre="Septiembre";
        break;
        case 
10:
        
$mes_nombre="Octubre";
        break;
        case 
11:
        
$mes_nombre="Nobiembre";
        break;
        case 
12:
        
$mes_nombre="Diciembre";
        break;
    }
    
echo 
'<table border="0" align="left" cellpadding="0" cellspacing="0" id="meses"><tr>';
echo 
'<td colspan="7" bgcolor="0000FF" ><font color="FFFFFF">&nbsp;'.$mes_nombre.' - '.$anyo.'</font></td>';
$ultimo_dia date("t",mktime(000$i1$anyo)); // ultimo dia del mes dado //

echo '<tr><td align="center">L</td><td align="center">M</td><td align="center">M</td><td align="center">J</td><td align="center">V</td><td align="center">S</td><td align="center">D</td></tr>';
echo 
'<tr>';

for(
$d=1$d<=$ultimo_dia$d++)// crear los dias
{

    if(
$d==1)
    {
    
$dia_name date("D",mktime(000$i1$anyo)); //nombre del dia 1
    
if($dia_name=="Mon"){}
    if(
$dia_name=="Tue"){echo "<td>&nbsp;</td>";}
    if(
$dia_name=="Wed"){echo "<td colspan='2'>&nbsp;</td>";}
    if(
$dia_name=="Thu"){echo "<td colspan='3'>&nbsp;</td>";}
    if(
$dia_name=="Fri"){echo "<td colspan='4'>&nbsp;</td>";}
    if(
$dia_name=="Sat"){echo "<td colspan='5'>&nbsp;</td>";}
    if(
$dia_name=="Sun"){echo "<td colspan='6'>&nbsp;</td>";}    
    
// esto lo hacemos para que el calendario quede bien los primeros dias, por ejemplo, si el primer dia del mes fuera un jueves, no podriamos ponerlo en la primera columna.
    //de esta manera solucuionamos el problema
    
}
    
$dia_nombre date("D",mktime(000$i$d$anyo)); //nombre del dia

if($dia_nombre=="Sun" || $dia_nombre=="Sat"//distinguimos si es sabado o domingo para lo siguiente:
{
    if(
$dia_nombre=="Sun")
    {
        
//si es domingo, hacemos que el calendario vaje a la siguiente fila, para que quiede bien, ademas lo marcamos de color rojo.
        
echo '<td bgcolor="#FF0000" align="center"><font color="#FFFFFF"><b>&nbsp;'.$d.'&nbsp;</b></font></td>'
        echo 
'</tr><tr>';
    }
    else
    {
        
//si es sabado, lo marcamos de color rojo
        
echo '<td bgcolor="#FF0000" align="center"><font color="#FFFFFF"><b>&nbsp;'.$d.'&nbsp;</b></font></td>'//si es sabado, lo marcamos de color rojo
    
}
}
else
{
    
$comprobar=$d.'/'.$i;
    if(
in_array($comprobar,$array_dias_festivos)) // si ha de estar marcado con un color...
    

        echo 
'<td bgcolor="#0000FF" align="center"><font color="#FFFFFF"><b>&nbsp;'.$d.'&nbsp;</b></font></td>';
    }
    else 
// si es un dia normal...
    
{
        echo 
'<td align="center">&nbsp;'.$d.'&nbsp;</td>';
    }
}
}
echo 
'</tr></table>';
$r++;
//if($r>=4){ echo '<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />'; $r=0;}
}

?>
Solo tendrías que poner los dias festivos en un array con "formato" dia/mes en el array $array_dias_festivos

y listo! espero que te sirva