• Publicidad

Fecha: obtener el día de la semana

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Fecha: obtener el día de la semana

Notapor Jsargiotto » 2006-12-20 20:09 @881

¡¡¡Hola comunidad!!!

He recurrido a uds. porque estoy empezando Perl... :P y bueno...ya empezaron las dificultades.

Mi problema es que necesito mostrar la fecha con el siguiente formato:
Día, XX de Mes de XXXX.
Ej: Miércoles, 20 de Diciembre de 2006

Tengo algo hecho... pero me muestra solamente la última parte, es decir, 20 de Diciembre de 2006.

Mi pregunta es: ¿cómo consigo el día?

Aquí les dejo lo que hice:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use warnings;

# Arreglo con los meses del año
@meses = ("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

$fecha = `date/t`;

($dia, $mes, $anio) = split(/\//, $fecha);

$mes --;
print "Hoy es: ". $dia ." de ". $meses[$mes] ." de ". $anio ."\n";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Jsargiotto
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2006-12-20 20:01 @876

Publicidad

Notapor creating021 » 2006-12-20 20:21 @889

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/env perl
use strict;
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);

my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
my @dias = qw( Dom  Lun Mar Mier Jue Vie Sab );
$year += 1900;
print "Hoy es $abbr[$mon] $dias[$wday] $mday de $year\n";
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Tomado (parte) de perldoc :idea:
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2006-12-20 21:00 @917

Bienvenido a los foros de Perl en Español.

Primero, comentar que obtener la fecha llamando al comando 'date' puede ser un poco peligroso, porque depende del sistema en que nos encontremos. En unos casos te devolverá la fecha separado con '/' pero en otros, no.

Es mejor usar localtime o gmtime.

Y en cuanto a sacar el nombre del día, se hace de la misma forma que has sacado el nombre del mes. Es decir, creando un array con los nombres de los días, como te ha mostrado creating021.

De todas maneras, esta es una operación tan normal que hay múltiples formas de conseguirla. Si consultas la ayuda de Perl, con el comando perldoc en unix o Linux o la ayuda en html en Windows, verás al final de localtime una forma de obtener la fecha que depende directamente del idioma en que está corriendo tu sistema:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use POSIX 'strftime';
print strftime "%A, %e de %B de %Y", localtime; # jueves, 21 de diciembre de 2006
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2006-12-21 06:52 @328

Seguro que hay una opción en ese comando date de tu sistema para sacar el día de la semana.

Tendrás que sacar la ayuda de ese comando.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado