Ha pasado casi un mes y acabo de descubrir otro fallo de este módulo.
Parece ser que en la versión 5.44 no funciona el módo de contar los días indicado en el desplazamiento dentro del cálculo de fechas.
Quiero decir, que según la documentación, las dos líneas siguientes deberían hacer lo mismo:
- Código: Seleccionar todo
perl -MDate::Manip -le 'Date_Init( "Language=Spanish", "DateFormat=non-US"); $x = DateCalc("29/09/2005", "+ 6 dias",\$err,2); print $x,"\n",$err'
2005100708:00:00
perl -MDate::Manip -le 'Date_Init( "Language=Spanish", "DateFormat=non-US"); $x = DateCalc("29/09/2005","+ 6 dias laborales",\$err); print $x,"\n",$err'
2005100500:00:00
Pues no... la segunda línea veis que falla... si al día 29 de septiembre le sumo 6 días laborales debería dar el 7 de octubre, como en la primera línea, pero falla diciendo que es el día 5 de octubre.
El fallo es independiente del idioma. Esto también fallará:
- Código: Seleccionar todo
perl -MDate::Manip -le '$x = DateCalc("09/29/2005","+ 6 business days",\$err); print $x,"\n",$err'
El error está publicado como [cpan #14762] en Date::Manip y como [cpan #14763] en DateTime::Format::DateManip. El autor también está avisado.
Un solución que he encontrado es editar Date::Manip y buscar las dos líneas
- Código: Seleccionar todo
} elsif ($tmp=&ParseDateDelta($D
e insertar bajo cada una de ellas esta otra
- Código: Seleccionar todo
$mode = $Curr{"Mode"};