• Publicidad

Día de la semana de una fecha determinada

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

Día de la semana de una fecha determinada

Notapor rubentxuweb » 2008-05-06 08:44 @405

¡Hola!

Antes de publicar este mensaje he estado buscando en el foro y no he encontrado respuesta a mi pregunta. Si ya está respondida os agradeceré que me digáis dónde.

Necesito saber el día de la semana de una fecha determinada. Ahora mismo, utilizo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$mon = $mon+1;
$year = $year+1900;
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Lo que me da correctamente el día de la semana actual, pero no sé cómo obtener ese mismo valor en $wday para una fecha concreta, por ejemplo: 01/05/1980.

¿Qué debo hacer? ¡Ah! Mi proveedor no tiene instalados casi módulos, así que si existe algo "directo", mejor :?

¡Gracias un millón!

Ruben.
rubentxuweb
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 2
Registrado: 2008-05-06 08:33 @398

Publicidad

Notapor explorer » 2008-05-06 10:01 @459

Bienvenido a los foros de Perl en Español, rubentxuweb.

Esta es una solución, de las posibles.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Time::Local;
my $fecha = '01/04/1980';
my ($dia,$mes,$anno) = $fecha =~ /(\d+)/g;
my $dia_de_la_semana = (localtime timelocal 0,0,0,$dia,$mes-1,$anno-1900)[6];
print $dia_de_la_semana; # 0..6, empezando en domingo
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Usamos la acción combinada de timelocal() para pasar a fecha en formato segundos, y luego, de vuelta, con localtime(), de la que nos quedamos con el componente número 6.

Lo ideal es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use DateTime;
my $fecha = DateTime->new(
    year  => 1980,
    month => 4,
    day   => 1,
);
print $fecha->day_of_week(); # 1..7, empezando en lunes
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Y si tu proveedor no tiene módulos instalados, puedes instalarlos tu mismo en tu propio directorio.
JF^D Perl Programming Language
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 12996
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kidd » 2008-05-06 12:48 @575

explorer escribiste:Y si tu proveedor no tiene módulos instalados, puedes instalarlos tu mismo en tu propio directorio.


http://perlenespanol.com/tutoriales/mod ... talar.html
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1165
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor rubentxuweb » 2008-05-07 16:35 @732

¡Hola!

¡¡¡Gracias por las respuestas!!! Ambas me han solucionado primeramente el problema que tenía con las fechas y por otra parte, poder usar módulos en mi servidor.

¡Gracias sinceras!
rubentxuweb
Perlero Nuevo
Perlero Nuevo
 
Mensajes: 2
Registrado: 2008-05-06 08:33 @398


Volver a Básico

¿Quién está conectado?

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