Foros del Web » Programando para Internet » PHP »

Ayuda con Calendario o agenda

Estas en el tema de Ayuda con Calendario o agenda en el foro de PHP en Foros del Web. Saludos. Necesito vuestra colaboración para crear un calendario que solo me muestre días habiles, es decir de lunes a sabado y solo apartir de la ...
  #1 (permalink)  
Antiguo 07/12/2005, 16:50
 
Fecha de Ingreso: enero-2004
Ubicación: Colombia
Mensajes: 80
Antigüedad: 20 años, 3 meses
Puntos: 0
Ayuda con Calendario o agenda

Saludos.

Necesito vuestra colaboración para crear un calendario que solo me muestre días habiles, es decir de lunes a sabado y solo apartir de la fecha actual, es decir, que siendo hoy 7/12/2005, me hbilite desde esta fecha hasta el 31/12/2005.

Les agradezco cualquier orientación
  #2 (permalink)  
Antiguo 08/12/2005, 10:01
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Buen día,, sería de mucha utilidad que te ampliaras un poco mas el tema de lo que deseas lograr y que utilidad le daras a esto que quieres hacer ya que hasta el momento vagamente es entendible tu duda,, ampliate un poco más ...

saludos..
__________________
http://dev.wsnetcorp.com
  #3 (permalink)  
Antiguo 09/12/2005, 08:40
 
Fecha de Ingreso: enero-2004
Ubicación: Colombia
Mensajes: 80
Antigüedad: 20 años, 3 meses
Puntos: 0
Ayuda con Calendario


Hombre, gracias por su interes.
La que estoy necesitando hacer es un calendario, de hecho ya tengo uno, que me muestra el mes completo seleccionado (de lunes a domingo). la idea es modificar este código para que solo me muestre de lunes a sabado y a partir de la fecha actual, es decir por ejemplo hoy 9 de diciembre, que los dias que aparezcan en el calendario sena mayores a 9/12/2005, e sdecir que comienzen del 10 de diciembre en adelante. lo que busco es que el cliente no me seleccione fechas anteriores ni la actual. le adjunto el código. Le agradecieria culquier orienteación.


Código PHP:
<?
function calcula_numero_dia_semana($dia,$mes,$ano){
    
$numerodiasemana date('w'mktime(0,0,0,$mes,$dia,$ano));
    if (
$numerodiasemana == 0
        
$numerodiasemana 6;
    else
        
$numerodiasemana--;
    return 
$numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano){ 
    
$ultimo_dia=28
    while (
checkdate($mes,$ultimo_dia 1,$ano)){ 
       
$ultimo_dia++; 
    } 
    return 
$ultimo_dia


function 
dame_nombre_mes($mes){
     switch (
$mes){
         case 
1:
            
$nombre_mes="Enero";
            break;
         case 
2:
            
$nombre_mes="Febrero";
            break;
         case 
3:
            
$nombre_mes="Marzo";
            break;
         case 
4:
            
$nombre_mes="Abril";
            break;
         case 
5:
            
$nombre_mes="Mayo";
            break;
         case 
6:
            
$nombre_mes="Junio";
            break;
         case 
7:
            
$nombre_mes="Julio";
            break;
         case 
8:
            
$nombre_mes="Agosto";
            break;
         case 
9:
            
$nombre_mes="Septiembre";
            break;
         case 
10:
            
$nombre_mes="Octubre";
            break;
         case 
11:
            
$nombre_mes="Noviembre";
            break;
         case 
12:
            
$nombre_mes="Diciembre";
            break;
    }
    return 
$nombre_mes;
}

function 
mostrar_calendario($dia,$mes,$ano){
$mes_hoy=date("m");
$ano_hoy=date("Y");
if ((
$mes_hoy <> $mes) || ($ano_hoy <> $ano))
{
    
$hoy=0;
}
else
{
    
$hoy=date("d");
}
    
//tomo el nombre del mes que hay que imprimir
    
$nombre_mes dame_nombre_mes($mes);
    
    
//construyo la cabecera de la tabla
    
echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td colspan=7 align=center class=tit>";
    echo 
"<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes anterior
    
$mes_anterior $mes 1;
    
$ano_anterior $ano;
    if (
$mes_anterior==0){
        
$ano_anterior--;
        
$mes_anterior=12;
    }
    echo 
"<a style=color:white;text-decoration:none href=citapc.php?dia=1&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior>&lt;&lt;</a></td>";
       echo 
"<td align=center class=tit>$nombre_mes $ano</td>";
       echo 
"<td align=right style=font-size:10pt;font-weight:bold;color:white>";
    
//calculo el mes y ano del mes siguiente
    
$mes_siguiente $mes 1;
    
$ano_siguiente $ano;
    if (
$mes_siguiente==13){
        
$ano_siguiente++;
        
$mes_siguiente=1;
    }
    echo 
"<a style=color:white;text-decoration:none href=citapc.php?dia=1&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente>&gt;&gt;</a></td></tr></table></td></tr>";
    echo 
'    <tr>
                <td width=14% align=center class=altn>Lunes</td>
                <td width=14% align=center class=altn>Martes</td>
                <td width=14% align=center class=altn>Miercoles</td>
                <td width=14% align=center class=altn>Jueves</td>
                <td width=14% align=center class=altn>Viernes</td>
                <td width=14% align=center class=altn>Sabado</td>
                <td width=14% align=center class=altn>Domingo</td>
            </tr>'
;
    
    
//Variable para llevar la cuenta del dia actual
    
$dia_actual 1;
    
    
//calculo el numero del dia de la semana del primer dia
    
$numero_dia calcula_numero_dia_semana(1,$mes,$ano);
    
//echo "Numero del dia de demana del primer: $numero_dia <br>";
    
    //calculo el último dia del mes
    
$ultimo_dia ultimoDia($mes,$ano);
    
//escribo la primera fila de la semana
    
echo "<tr>";
    for (
$i=0;$i<7;$i++){
        if (
$i $numero_dia){
            
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
            
echo "<td></td>";
        } else {
        if ((
$i == 5) || ($i == 6))
        {
                if (
$dia_actual == $hoy)
                {
                    echo 
"<td class=da><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    echo 
"<td class=fs><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
        }
        else
        {            
                if (
$dia_actual == $hoy)
                {
                    echo 
"<td class=da><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    echo 
"<td align=center><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
        }
            
$dia_actual++;
        }
    }
    echo 
"</tr>";
    
    
//recorro todos los demás días hasta el final del mes
    
$numero_dia 0;
    while (
$dia_actual <= $ultimo_dia){
        
//si estamos a principio de la semana escribo el <TR>
        
if ($numero_dia == 0)
            echo 
"<tr>";
        
//si es el uñtimo de la semana, me pongo al principio de la semana y escribo el </tr>

            
if (($numero_dia == 5) || ($numero_dia == 6))
            {
                if (
$dia_actual == $hoy)
                {
                    echo 
"<td class=da><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    echo 
"<td class=fs ><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
            }
            else
            {        
                if (
$dia_actual == $hoy)
                {
                    echo 
"<td class=da><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
                else
                {
                    echo 
"<td align=center><a href=citap.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
                }
            }

            
$dia_actual++;
            
$numero_dia++;
            if (
$numero_dia == 7)
            {
                
$numero_dia 0;
                echo 
"</tr>";
            }

    }
    
    
//compruebo que celdas me faltan por escribir vacias de la última semana del mes
    
for ($i=$numero_dia;$i<7;$i++){
        echo 
"<td></td>";
    }
    
    echo 
"</tr>";
    echo 
"</table>";
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:20.