• Publicidad

Sumar días laborales

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

Sumar días laborales

Notapor cathan22 » 2015-02-05 21:38 @943

Hola.

Soy muy nuevo en esto de Perl y necesito ayuda.

El código que tengo lo que hace es recibir una fecha y un número (serán los días). El número se resta a la fecha actual para establecer la fecha de vencimiento.

Lo que necesito mejorar es que solo cuente los días laborales, saltándose los sábados y domingo, y si no es muy complicado, los feriados.

El código es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $diasvcto = $ARGV[1];
  2. my $fecha = 2015-02-04;
  3.  
  4. ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
  5.                                           localtime(time - ($diasvcto * 86400));
  6. $year += 1900;
  7. $mon += 1;     
  8. my $fechavcto = "$year-$mon-$mday";
  9.  
  10. if ($fecha = $fechavcto)
  11. {
  12.    print ("Vencido");
  13. }
  14. else
  15. {
  16.    print ("Aún no vence");
  17. }
  18.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
cathan22
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2015-02-05 20:44 @905

Publicidad

Re: Sumar días laborales

Notapor explorer » 2015-02-06 07:29 @354

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

Pues... lo siento, pero el tema es muy complicado, si lo quieres hacer a mano.
Con localtime() puedes saber si el día es sábado o domingo, y tomarlo como día laborable o no.
Pero el problema son los días feriados: te obliga a mirar, por cada día, si coincide con alguno de los feriados que tengas en una lista.

Usando un hash, en Perl, se simplifica el problema, pero aún así, son muchas líneas.

Por estos foros ya hemos hablado y resuelto el problema, con la ayuda del módulo Date::Manip. Te pido que leas ese mensaje, donde aparece un ejemplo exacto a lo que quieres. Con una sola línea de programa se resuelve el problema, pero para llegar a esa línea, hizo falta mucha investigación (ver los correos anteriores a ese).

Pruébalo, y si tienes problemas, nos avisas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
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 3 invitados

cron