Aunque
estoy
dando
gratuitamente
el
código
realmente
apreciaría
que
dejarás
mi
firma
en
el
encabezado
del
script
así
como
la
que
se
despliega
al
crear
el
calendario.
No
hay
nada
que
te
obligue
a
mantenerla
pero
considera
que
estoy
regalando
código,
y
pues
si
te
gusta
sería
una
manera
de
apoyar
al
sitio,
así
que
ojala
y
te
sirva:
#!/usr/bin/perl
-w
use
strict;
use
Time::Local;
######################################################################
#
Distribución:
Scripts
de
Perl
en
Español
(http://perlenespanol.baboonsoftware.com/)
#
#
Archivo:
calendario.cgi
#
Versión:
1.0
#
Descripción:
Un
pequeño
script
que
despliega
un
calendario
formateado
#
Creado
por:
Uriel
Lizama
#
#
Parte
de
los
scripts
de
Perl
en
Español.
Todos
los
derechos
reservados
#
#
E-Mail:
uriel@baboonsoftware.com
(http://perlenespanol.baboonsoftware.com/)
#######################################################################
#ESTAS
VARIABLES
DEBES
DE
EDITAR
my
$anio
=
"2004";
#de
que
año
estamos
hablando
################################################
########
NO
EDITAR
ABAJO
####################
################################################
my
$mes;
for($mes=1;$mes<=12;$mes++){
header_calendario_html();
#imprimir
cabeza
crear_calendario();
#crear
el
calendario
footer_calendario_html();
#imprimir
pie
}
#FIRMA:
Por
favor
no
la
retires
print
"<p
align=\"right\">\n";
print
"<a
href=\"http://perlenespanol.baboonsoftware.com/\">Creado
por
Uriel
Lizama</a>\n";
print
"</p>\n";
exit(1);
sub
crear_calendario{
my
$dia_inicial
=
dia_semana();
my
($i,$j);
#contadores
my
@dias_semana
=
('Domingo','Lunes','Martes','Miércoles','Jueves',
'Viernes','Sábado','Domingo');
my
@dias_meses
=
('',
31,29,31,30,31,30,31,31,30,31,30,31);
#Año
bisiesto
hack
-
YEY!....mis
locuras
ya
ves
if($mes
==
2){
$dias_meses[$mes]
=
28
if
$anio%4
!=
0;
}
#Llenar
espacios
vacíos
print
"<tr>\n";
print
"<td
style=\"text-align:center;width:50px;\"> </td>\n"
x
$dia_inicial;
for($i=1,$j=$dia_inicial;$i<=$dias_meses[$mes];$i++,$j++){
$j
=
0
if
$j
>
6;
print
"<tr>\n"
if
$j
==
0;
print
"<td
style=\"text-align:center;width:50px;\">$i</td>\n";
print
"</tr>\n"
if
$j
==
6;
}
}
#sub
crear
calendario
sub
header_calendario_html{
my
@nombres_meses
=
('',
'Enero','Febrero','Marzo','Abril',
'Mayo','Junio','Julio','Agosto',
'Septiembre','Octubre','Noviembre','Diciembre');
print
"Content-type:
text/html\n\n"
if
$mes
==
1;
print
"<table
align=\"center\"
border=\"1\">\n";
print
"<tr>\n";
print
"<td
style=\"text-align:center;background-color:black;color:white;\"
colspan=\"7\">$nombres_meses[$mes]</td>\n";
print
"</tr>\n";
print
"<tr>\n";
print
"<td
style=\"text-align:center;width:50px;\">D</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">L</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">M</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">M</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">J</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">V</td>\n";
print
"<td
style=\"text-align:center;width:50px;\">S</td>\n";
print
"</tr>\n";
}
#sub
header_calendario_html
sub
footer_calendario_html{
print
"</table>\n";
print
"<p>\n";
}
#sub
footer_calendario_html
sub
dia_semana{
my
$gmtime
=
timegm(0,0,0,"01",$mes-1,$anio-1900);
my
@gmtime
=
gmtime($gmtime);
#regresarlo
return($gmtime[6]);
}
#sub
get_dia_semana