Está usted en Indice > Construcción > Lenguajes > Perl > Lecciones y Paso a Paso > Desplegar la Fecha en Perl
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Desplegar la Fecha en Perl

Introducción

Vamos a aprender a usar el comando "localtime" para desplegar la fecha de la siguiente manera:

5/23/02 7:53 AM

Localtime

Su sintaxis es sumamente básica y es como sigue:

my ($minuto, $hora, $mday, $mes, $año) = (localtime(time))[1,2,3,4,5];

Veamos está linea parte a parte. Podemos ver que estamos asignando variables a cada valor de un array que sería el comando "localtime".

Ahora en cada una de las variables del lado derecho tenemos unos valores, pero debemos de trabajar un poco en ellos.

Si recuerdas los arrays en perl empiezan a contar siempre desde 0. Esto significa que todos los valores de nuestra variables empezarón en 0.

Esto no es problema para los minutos, la hora, el año, debido a que ellos si tienen un momento 0. ¿Pero qué pasa con el mes?. Debido a que perl empieza en 0, entonces los meses empiezan desde 0, siendo así (0...11).

Para poder contrarestar esto, vamos a incluir una pequeña linea:

$mes++;

Ahora vamos con el año. Debido a que perl se preparó para lo que sería el problema del 2000, hay una cierta adición que es indispensable hacer.

Si imprimes el año como viene verás que en el caso de este año, que es el 2002, se despliega como:

102

Es por ello que le vamos a sumar 1900

$año += 1900;

Ahora como nosotros solo queremos desplegar los dos últimos digitos vamos a hacer lo siguiente:

$año = substr($año,2,2);

Veamos el comando "substr", la primera parte nos indica la variable a la que queremos hacer la substracción, en este caso "año", luego el número 2 nos indica desde que lugar empezamos, y el otro dos nos indica cuantos números quitar.

Ok. Ya tenemos listo el año, y el mes. Ahora vamos con el tiempo.

Como queremos desplegar si estamos en "AM" o "PM" hay que checar con la hora. Esto lo vamos a hacer con unos enunciados de control if-else:

$ampm = "PM" if ($hora > 11);
$hora = $hora - 12 if ($hora > 12);

La primera linea checa que "$hora" sea mayor de 11 para asignar a la variable "$ampm" el valor "PM", de lo contrarío quedaría como "AM".

Como queremos que la hora se despliegue en formato de 12 horas, restamos 12 si la hora es mayor que 12. Para ser más claro si la hora es "14" le restamos 12 para quedar "2".

Ahora si vamos muy bien, solo falta un pequeño detalle y ya tendremos listo nuestro despliegue.



Usuarios que han visto este tema también han visto...

- POP3 con Perl
- Uso de Loops en Perl
- Qué es Perl
- Hola Mundo


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 06-07-2008 a las 00:49:11