Какой модуль CPAN я должен использовать, чтобы рассчитать заранее количество рабочих дней - PullRequest
2 голосов
/ 22 октября 2011

Это вопрос из двух частей:

Я хочу посчитать (скажем) 5 рабочих дней в Perl. Учет как выходных, так и праздничных дней. Date::Manip делает это, но очень тяжело. Есть ли более легкий весовой модуль, который бы хорошо с этим справился?

Если Date::Manip действительно правильный выбор, можете ли вы сказать мне, почему это ничего не печатает. Документация для Date::Manip о том, как на самом деле выводить вещи, очень тонкая.

use Date::Manip;

my $date = new Date::Manip::Date;

my $err = $date->parse("today");
if ($err) {
     print "Problems: $err\n";
}
$date->printf("It is now %b %e, %Y.\n");

Ответы [ 2 ]

2 голосов
/ 22 октября 2011

Метод printf должен был называться sprintf.Возвращает отформатированную строку;это не печатает это.Попробуйте:

print $date->printf("It is now %b %e, %Y.\n");

Date :: Manip , вероятно, самый простой способ обработки рабочих дней, поскольку в него встроена концепция. Вы также можете сделать это с помощью DateTime:: Установите операций (см. DateTime :: Event :: Holiday :: US для набора, предварительно заполненного выходными в США).

Также есть DateTime :: BusinessHours, но я никогда не пробовал.

1 голос
/ 22 октября 2011

DateTime является легким по сравнению с Date::Manip. Также посмотрите на Date::Business. Может работать в праздничные и рабочие дни (addb).

...