Foros del Web » Programando para Internet » PHP »

No todo en la vida es recibir... Asike aki posteo un código de calendario ke hice.

Estas en el tema de No todo en la vida es recibir... Asike aki posteo un código de calendario ke hice. en el foro de PHP en Foros del Web. Es un calendario del mes actual. simple de usar y fácil de modificar´. Caracteristicas ------------------ - Posible mostrar días festivos - Fácil de enlazar con ...
  #1 (permalink)  
Antiguo 10/09/2003, 16:36
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
No todo en la vida es recibir... Asike aki posteo un código de calendario ke hice.

Es un calendario del mes actual.

simple de usar y fácil de modificar´.

Caracteristicas
------------------

- Posible mostrar días festivos
- Fácil de enlazar con urls de consulta u otra cosa
- Ta weno

Código PHP:
<style type="text/css">
<!--
.diassemana {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 7pt;
    text-decoration: none;
}
-->
</style>
<body bgcolor="#FFFFFF">
<?
# o--------------------------------------------------------------------------o
#  Funcion que despliega la fecha en formato de texto
#  Ejemplo Lunes, Octubre 22 de 2001
#  Creada por Exequiel Contreras Luna
#  Contáctame en : [email][email protected][/email]
#  Libre distribución, siempre que no se borre la nota de Creditos al autor.
# o--------------------------------------------------------------------------o
  
 
$dayarray=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo");
 
$montharray=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
$diasemanadate("w");
 
$diamesdate("d");
 
$mesdate("m");
 
$mesantdate("m")-1;
 
$anodate("Y");
 
$diasdelmes=date("t");
 
$diamesant=date($mesant);
 
 
// en ésta variable se almacena la fecha en modo de texto, se puede mostrar usando un echo o print o lo ke kieran.
 
$lafecha=$dayarray[$diasemana].", ".$montharray[$mes-1]." ".$diames." de ".$ano
 
// se puede alterar el orden si lo deseas
 
$festivos=array(18,19); // escoge los días festivos de acuerdo a tu país, tb puedes incluir Domingos y sábados
 
$totalfestivos=2// Cantidad de días festivos

 // calcula el inicio del mes actual
 
$diasatras=$diames;
 
 
$arraymesfull=array(42);
 
$arraymesfull[$diames]=$dayarray[$diasemana];
 
 
$i=$diames;
 
$decdiasemana=$diasemana;
 while (
$i>=0)
  {
    
$empiezaen=$decdiasemana+1;
    
$i=$i-1;
    if (
$decdiasemana==0)
     {
      
$decdiasemana=6;
     }
    else
     {
      
$decdiasemana=$decdiasemana-1;
     } 

  }
     
 for (
$i=0;$i<=42;$i++)
  { 
    
$arraymesfull[$i]=" ";
  }

$i=0;
$j=1;
 for (
$i=$empiezaen;$j<=$diasdelmes;$i++)
  { 
    
$arraymesfull[$i]=$j;
    
$j++;
  }
?>
<span class="diassemana"><i><?=$lafecha?></i></span> 
<table border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">
  <tr>
    <td>
      <table border="0" cellspacing="1" cellpadding="0">
        <tr class="diassemana"> 
          <td colspan="7"> <div align="center"><font size="1"><b><font face="Trebuchet MS, Tahoma"> 
              <? echo $montharray[$mes-1]; ?> </font></b></font></div></td>
        </tr>
        <tr class="diassemana"> 
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">D</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">L</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">J</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">V</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">S</font></div></td>
        </tr>
        <tr> 
          <? 
$j
=0;
for (
$i=0;$i<=42;$i++)
{
$verfest=0;
$bcolor="#E8E8E8"$fcolor="#000000";
if (
$diames==$arraymesfull[$i]) { $bcolor="#000000"$fcolor="#FFFFFF"; }
for (
$verfest==0;$verfest<$totalfestivos;$verfest++) {
if (
$arraymesfull[$i]==$festivos[$verfest]) { $bcolor="#E8E8E8"$fcolor="#CC0000"; }
}
?>
          <td width="20" align="center" bgcolor=<? echo $bcolor ?> class="diassemana" ><font  color=<? echo $fcolor?>
            <? echo $arraymesfull[$i]; ?> </font></td>
          <?     
if ($j==6) {$j=0?>
        </tr>
        <tr> 
          <? 
 else {
$j=$j+1;}
?>
      </table>
      
    </td>
  </tr>
</table>
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #2 (permalink)  
Antiguo 10/09/2003, 20:11
 
Fecha de Ingreso: marzo-2002
Ubicación: Guadalajara, Jalisco.
Mensajes: 213
Antigüedad: 22 años, 1 mes
Puntos: 0
Woorale está bueno el calendario, no lo he chekado con mucho cuidado pero funciona!

Muchas gracias por compartirlo execon!
__________________
Edgar Castro
Estudiante de Ingenieria en Sistemas @ ITESO
http://www.iteso.mx
  #3 (permalink)  
Antiguo 11/09/2003, 06:45
Avatar de davidMS  
Fecha de Ingreso: abril-2003
Ubicación: Chepe
Mensajes: 202
Antigüedad: 21 años
Puntos: 0
un al open source...............

Yo lo apollo %100 aunque sea en scripts ...
  #4 (permalink)  
Antiguo 11/09/2003, 19:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Muy bien por compartir con todos nosotros tus scripts ...

Sobre el código en sí .. En lo personal me gusta usar foreach() en la medida de lo posible para recorrer arrys (como q queda el código más "limpio"). También veo que tienes una variable:

Código PHP:
$totalfestivos=2
podrías usar:

Código PHP:
$totalfestivos=count($festivos); 
así dejo a "PHP" que cuente el total de elementos que ponga en el array "festivos" .. Un error al contar mal el número de elementos "destrozaría" el código ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 11/09/2003, 22:38
 
Fecha de Ingreso: febrero-2003
Ubicación: Guanare
Mensajes: 90
Antigüedad: 21 años, 2 meses
Puntos: 0
Bueno

Te felicito por compartir tu script, aqui te coloc una dirección donde puedes mejorarlo e indicar cuales son los dias de fiesta de tu pais

http://www.desarrolloweb.com/articul....php?manual=24
  #6 (permalink)  
Antiguo 12/09/2003, 12:41
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
Bakan !!

cuando depuré el script no pude recordar la función count() por eso usé la variable, para salir del paso, pero ahora con las ideas ke me dieron lo mejoro.

Gracias.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #7 (permalink)  
Antiguo 15/10/2003, 18:39
 
Fecha de Ingreso: agosto-2003
Ubicación: Valencia
Mensajes: 1
Antigüedad: 20 años, 7 meses
Puntos: 0
Execon, muchas gracias por el detalle todavía no he probado tu código del calendario pero tengo muchas ganas de hacerlo,
Un saludo y otra vez muchas gracias.
  #8 (permalink)  
Antiguo 15/10/2003, 19:52
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
Bueno, ya me habia olvidado de éste script, pero aki les posteo el código final con días festuivos y todo.

Código PHP:
<style type="text/css">
<!--
.diassemana {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 7pt;
    text-decoration: none;
}
-->
</style>
<body bgcolor="#FFFFFF">
<?
# o--------------------------------------------------------------------------o
#  Funcion que despliega la fecha en formato de texto
#  Ejemplo Lunes, Octubre 22 de 2001
#  Creada por Exequiel Contreras Luna
#  Contáctame en : [email][email protected][/email]
#  Libre distribución, siempre que no se borre la nota de Creditos al autor.
# o--------------------------------------------------------------------------o
  
 
$dayarray=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo");
 
$montharray=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
$diasemanadate("w");
 
$diamesdate("d");
 
$mesdate("m");
 
$mesantdate("m")-1;
 
$anodate("Y");
 
$diasdelmes=date("t");
 
$diamesant=date($mesant);
 
 
// en ésta variable se almacena la fecha en modo de texto, se puede mostrar usando un echo o print o lo ke kieran.
 
$lafecha=$dayarray[$diasemana].", ".$montharray[$mes-1]." ".$diames." de ".$ano
 
// se puede alterar el orden si lo deseas
 
$festenero=array(1);
 
$festfebrero=array();
 
$festmarzo=array();
 
$festabril=array(18,19);
 
$festmayo=array(1,21);
 
$festjunio=array(16);
 
$festjulio=array();
 
$festagosto=array(15);
 
$festsept=array(18,19);
 
$festoct=array();
 
$festnov=array(1);
 
$festdic=array(8,25);
 
 
 
 
$festivos=array(18,19); // escoge los días festivos de acuerdo a tu país, tb puedes incluir Domingos y sábados
 
 
$totalfestivos=count($festivos); // Cantidad de días festivos

 // calcula el inicio del mes actual
 
$diasatras=$diames;
 
 
$arraymesfull=array(42);
 
$arraymesfull[$diames]=$dayarray[$diasemana];
 
 
$i=$diames;
 
$decdiasemana=$diasemana;
 while (
$i>=0)
  {
    
$empiezaen=$decdiasemana+1;
    
$i=$i-1;
    if (
$decdiasemana==0)
     {
      
$decdiasemana=6;
     }
    else
     {
      
$decdiasemana=$decdiasemana-1;
     } 

  }
     
 for (
$i=0;$i<=42;$i++)
  { 
    
$arraymesfull[$i]=" ";
  }

$i=0;
$j=1;
 for (
$i=$empiezaen;$j<=$diasdelmes;$i++)
  { 
    
$arraymesfull[$i]=$j;
    
$j++;
  }
?>
<span class="diassemana"><i><?=$lafecha?></i></span> 
<table border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">
  <tr>
    <td>
      <table border="0" cellspacing="1" cellpadding="0">
        <tr class="diassemana"> 
          <td colspan="7"> <div align="center"><font size="1"><b><font face="Trebuchet MS, Tahoma"> 
              <? echo $montharray[$mes-1]; ?> </font></b></font></div></td>
        </tr>
        <tr class="diassemana"> 
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">D</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">L</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">J</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">V</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">S</font></div></td>
        </tr>
        <tr> 
          <? 
$j
=0;
for (
$i=0;$i<=42;$i++)
{
$verfest=0;
$bcolor="#E8E8E8"$fcolor="#000000";
if (
$diames==$arraymesfull[$i]) { $bcolor="#000000"$fcolor="#FFFFFF"; }
for (
$verfest==0;$verfest<$totalfestivos;$verfest++) {
if (
$arraymesfull[$i]==$festivos[$verfest]) { $bcolor="#E8E8E8"$fcolor="#CC0000"; }
}
?>
          <td width="20" align="center" bgcolor=<? echo $bcolor ?> class="diassemana" ><font  color=<? echo $fcolor?>
            <? echo $arraymesfull[$i]; ?> </font></td>
          <?     
if ($j==6) {$j=0?>
        </tr>
        <tr> 
          <? 
 else {
$j=$j+1;}
?>
      </table>
      
    </td>
  </tr>
</table>
Espero a alguien le sirva ésto.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #9 (permalink)  
Antiguo 15/10/2003, 20:59
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Bueno, te ha quedado muy bien...

Creo que ahora sigue pasarlo a una Classe... no crees???

Código PHP:
<?
$calendario 
= new Calend;
$calendario->mes $_GET["mes"]
?>
<table>
<tr>
<td>
<? $calendario->mostrar(); ?>
</td>
</tr>
</table>
Que tal el reto???
__________________
Manoloweb
  #10 (permalink)  
Antiguo 16/10/2003, 01:50
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses
Puntos: 0
bakan, más ke reto s un desafio y me encantan los desafios... Lo haré.

y cuando lo tenga, volveré y haré millones.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #11 (permalink)  
Antiguo 16/10/2003, 12:04
memoc
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo

¡¡En medida de lo que das....recibes!!

Saludos
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 22:33.