No es que me sienta muy orgulloso de tener que hacer las cosas de esta manera, pero en este caso cuelgo un código que me hubiera sido muy beneficioso cuando estudiaba.
Este en concreto lo encontré no hace mucho por la red de una pagina que se denomina koders. Esta no es la manera que me gusta de colgar cosas ya que prefiero hacerlo por mi mismo todos estos programas pero en mi caso la falta de tiempo a sido crucial para no poderos prestar atención.
<?
/*
Autor inicial : Miguel Angel Alvarez <miguel@desarrolloweb.com>
Cita textual : Puedes utilizar ese cdigo para lo que desees... yo estoy encantado de
ayudar.
Febrero 2 2005.
Este archivo tiene cdigo inicialmente creado por Miguel Angel Alvarez, agradecemos
sus buenos deseos y continuaremos construyendo con el mismo nimo.
Contribuye : Rubn Amrtegui
*/
function 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(empty($dia))
$dia=date("d");
if(empty($mes))
$mes=date("m");
if(empty($ano))
$ano=date("Y");
//echo $ano_hoy;
if (($mes_hoy != $mes) || ($ano_hoy != $ano)) {
$hoy=0;
}
else {
$hoy=date("d");
}
//tomo el nombre del mes que hay que imprimir
$nombre_mes = nombre_mes($mes);
$nombre_mes_hoy = nombre_mes(date("m"));
//construyo la cabecera de la tabla
echo "<table border=0 bgcolor=#DDDDDD align=center><tr><td colspan=7 align=center>";
echo "<tr bgcolor=#7777FF><td colspan=7 align=center>Actual: $nombre_mes_hoy ".date("d")." del $ano_hoy</td></tr>";
echo "<tr bgcolor=#7777FF><td colspan=2>";
//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 href=menuagenda.php?dia=1&nuevo_mes=$mes_anterior&nuevo_ano=$ano_anterior&diaagenda=0>Ant</a></td>";
echo "<td align=center colspan=3> $dia - $nombre_mes - $ano </td>";
echo "<td colspan=2 align=right>";
//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 href=menuagenda.php?dia=1&nuevo_mes=$mes_siguiente&nuevo_ano=$ano_siguiente&diaagenda=0>Sig</a></td></tr></td></tr>";
echo "<tr bgcolor=#CCCCFF><td>LUNES</td><td>MARTES</td><td>MIERCOLES</td><td>JUEVES</td><td>VIERNES</td><td>SABADO</td><td>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 = que_dia_de_semana(1,$mes,$ano);
//echo "Numero del dia de demana del primer: $numero_dia <br>";
//calculo el ltimo dia del mes
$ultimo_dia = verifica_long_mes($mes,$ano);
//escribo la primera fila de la semana
echo "<tr align=center>";
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 == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td> <a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
$dia_actual++;
}
}
echo "</tr>";
//recorro todos los dems das 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 align=center>";
//si es el ultimo de la semana, me pongo al principio de la semana y escribo el </tr>
if ($numero_dia == 6) {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
}
else {
if ($dia_actual == $hoy) {
echo "<td><a href=menudia.php?dia=$dia_actual&nuevo_mes=$mes&nuevo_ano=$ano>$dia_actual</a></td>";
}
else {
echo "<td><a href=menudia.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>";
}
}
//Comprobando terminar el calendario del mes
for ($i=$numero_dia;$i<7;$i++) {
echo "<td></td>";
}
echo "</tr>";
echo "</table>";
}
//Retorna el nmero de la semana en donde se encuentra un determinado da.
function que_dia_de_semana($dia,$mes,$ano){
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
if ($numerodiasemana == 0)
$numerodiasemana = 6;
else
$numerodiasemana--;
return $numerodiasemana;
}
//Revisa para tener los meses completos
function verifica_long_mes($mes,$ano){
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano)){
$ultimo_dia++;
}
return $ultimo_dia;
}
Calendario en PHP.
WebMaster
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios: (+add yours?)
Publicar un comentario