1 de enero de 2010

La fecha en Perl: time() y localtime()

time()
Este número representa la cantidad de segundos que han transcurrido desde una fecha en específico, en la mayoría de los sistemas esta fecha es el 1º de Enero de 1970 a las 0 horas GMT, una excepción de estos sistemas es la Mac, que cuenta los segundos desde el 1º de Enero de 1904 en la zona horaria del sistema:
1262363355 

localtime(time)
Toma este número y lo transforma en un número formado por:

#   0,    1,   2,   3,    4,    5,   6,    7,     8
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 
$sec(segundos), $min(minutos), y $hour(horas), representan la hora de la fecha especificada por time.
$mday es el día del mes y $mon es un número del 0 al 11 que representa el mes, donde 0 es Enero y 11 es Diciembre.
$year es la cantidad de años desde 1900 a la fecha. Así que para 2007 este elemento tendrá un valor de 107.
$wday es el día de la semana, representado con un número del 0 al 6, donde 0 es Domingo y 6 es Sábado.
$yday es el número del día del año, este número está en el rango del 0 al 364 y hasta 365 en años bisiestos.
Finalmente $isdst es verdadero en el caso de que la fecha esté dentro del horario de verano, también conocido como Daylight Saving Time, será falso de lo contrario.

Script para la fecha en perl:
#!/usr/bin/perl
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon++;
print "$mday/$mon/$year $hour:$min:$sec\n";

Script para el formato: yyyymmddhhmmss:

#!/usr/bin/perl
#bypp2010

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year = $year + 1900;
$mon++;
if ($sec < 10) { $sec = "0$sec"; }
if ($min < 10) { $min = "0$min"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($mday < 10) { $mday = "0$mday"; }
if ($mon < 10) { $mon = "0$mon"; }

print "$year\n";
print "$mon\n";
print "$mday\n";
print "$hour\n";
print "$sec\n";

my $FECHA = $year . $mon . $mday . $hour . $min . $sec;

No hay comentarios:

Publicar un comentario