• Publicidad

Suma de fechas

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Notapor kidd » 2006-03-20 20:13 @884

Parece que todo está bien, tus fechas las tienes bien puestas. Lo que habría de revisar es si tienes el archivo de configuración en el mismo directorio donde se encuentra el módulo.

Saludos
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: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Publicidad

Notapor kaeri » 2006-03-22 09:58 @457

Hola, kidd.

En este directorio es donde tengo el archivo de configuración:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
cd /usr/local/lib/perl5/site_perl/5.8.3/Date/
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Dentro de ese directorio se encuentran los archivos
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Manip.pm  Manip.pod  misDiasFestivos.cfg
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


:cry:
Avatar de Usuario
kaeri
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2004-08-19 12:05 @545
Ubicación: México

Re: Suma de fechas

Notapor explorer » 2006-03-27 13:05 @586

Entonces prueba a poner esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. Date_Init(
  2.     "Language=English",
  3.     "DateFormat=non-US",
  4.     "EraseHolidays=1",
  5.     "PersonalCnf=/usr/local/lib/perl5/site_perl/5.8.3/Date/misDiasFestivos.cfg"
  6. );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Quizás es que Date::Manip no encuentra el camino al fichero.
Otra opción es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. Date_Init(
  2.     "Language=English",
  3.     "DateFormat=non-US",
  4.     "EraseHolidays=1",
  5.     "PersonalCnfPath=/usr/local/lib/perl5/site_perl/5.8.3/Date/",
  6.     "PersonalCnf=misDiasFestivos.cfg"
  7. );
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: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor kaeri » 2006-03-28 14:30 @646

Ya he realizado lo que me comentas y no quiere realizar las operaciones. ¿De qué otra forma podría hacerlo?

Lo que quiero realizar que a partir de una fecha sumándole 10 días se quiten los días festivos, sábados y domingos y al final imprima la fecha correcta.

kaeri :(
Avatar de Usuario
kaeri
Perlero nuevo
Perlero nuevo
 
Mensajes: 44
Registrado: 2004-08-19 12:05 @545
Ubicación: México

Re: Suma de fechas

Notapor explorer » 2006-03-28 15:41 @695

¡¡¡Descubierto el fallo!!!

Sintáxis: (fiestas.txt) [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
*Holidays

21/3 = Día Natalicio de Benito Jaurez
16/9 = Día de la Independencia
20/11 = Día de la Revolución Mexicana
third Sunday in Jun = Día del Padre
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Sintáxis: (prueba.pl) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -l
  2.  
  3. use Date::Manip;
  4.  
  5. Date_Init( "Language=English", "DateFormat=non-US","EraseHolidays=1","PersonalCnf=fiestas.txt");
  6. $fecha = DateCalc("17/03/2006", "+9 business days");
  7. $fecha = UnixDate($fecha,"%d/%m/%Y");
  8. print $fecha; # 31/03/2006
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Según he comprobado, y como puedes ver, el fallo estaba en la forma de poner las fechas de las fiestas.

Otra cosa: Si pones el fichero de fiestas en el mismo directorio que el ejecutable, ya ves que no es necesario poner ningún camino al fichero.

Incluso funciona en español:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -l
  2.  
  3. use Date::Manip;
  4.  
  5. Date_Init( "Language=Spanish", "DateFormat=non-US","EraseHolidays=1","PersonalCnf=fiestas.txt");
  6. $fecha = DateCalc("17/03/2006", "+9 dias laborales");
  7. $fecha = UnixDate($fecha,"%d/%m/%Y");
  8. print $fecha; #31/03/2006
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Lo he probado con la v5.42 en Suse.

Recuerda que para la v5.44 (la última) y si quieres usarlo en español, entonces hay que parchearlo como te comentaba antes.
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

Notapor kidd » 2006-03-28 17:09 @756

explorer escribiste:¡¡¡Descubierto el fallo!!!

Según he comprobado y como puedes ver, el fallo estaba en la forma de poner las fechas de las fiestas.


Y según yo lo había revisado, lo bueno es que encontraste el fallo. :wink:


Saludos
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: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Suma de fechas

Notapor piero66 » 2013-09-09 15:09 @673

Hola, buen día. Reabro el tema, ya que como aquí se menciona, no me toma en cuenta los días festivos. Inclusive instalé el Date::Manip y ahora me marca los siguientes errores:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
ERROR: [config_var] invalid config variable: personalcnfpath
ERROR: [config_var] invalid config variable: personalcnf
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Busqué y hay un archivo llamado DateManip.cnf, pero éste no existe en mi servidor. No sé si lo debo crear ni dónde o en qué ruta guardarlo y cómo vincularlo con mi archivo Manip.pm y mis diasfestivos.txt.

¡¡ Espero me puedan apoyar !!
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Re: Suma de fechas

Notapor explorer » 2013-09-09 18:34 @815

Por el error yo diría que le has pasado a Data::Manip una mala configuración.

¿Puedes publicar el código que estás probando? Con las líneas que usas para definir las fechas, nos vale. Mira los ejemplos de código de los anteriores mensajes. Verás que con cuatro líneas es suficiente para ver qué estás haciendo.
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

Re: Suma de fechas

Notapor piero66 » 2013-09-10 13:12 @592

¿Qué tal, explorer? Gracias por contestar... ¡¡ Te agrego el código !!

use Date::Manip; # módulo de Perl
use DBI;


use Date::Calc qw(Today Delta_Days);
use Spreadsheet::WriteExcel;

my ($sec,$min,$hour,$mday,$mes,$anio,$wday,$yday,$isdst) = localtime(time);
$mes++;
$anio+=1900;

$dateIn ="$anio-$mes-$mday";
Date_Init( "Language=English", "DateFormat=non-US","EraseHolidays=0","PersonalCnfPath=/usr/lib64/perl5/vendor_perl/Eflow/date/","PersonalCnf=misDiasFestivos.cfg");

$fechain = DateCalc("$dateIn", "+ 1 business days");
piero66
Perlero nuevo
Perlero nuevo
 
Mensajes: 95
Registrado: 2008-05-22 12:00 @541

Re: Suma de fechas

Notapor explorer » 2013-09-10 15:19 @680

Vale, el problema es que tu módulo Date::Manip es de la versión 6, mientras que los ejemplos que hay en este hilo, y tu programa, está siguiendo las opciones de la versión 5.

Debes consultar la documentación de la configuración del módulo, pero creo que valdría con

Date_Init("ConfigFile=misDiasFestivos.cfg", ...<resto de opciones>...

Dice el manual que ConfigFile debe ir en primer lugar de Date_Init.
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

AnteriorSiguiente

Volver a Intermedio

¿Quién está conectado?

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