这是一个由两部分组成的问题:
我想在Perl中提前5个工作日计算(比方说)。适用于周末和假日。 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");
答案 0 :(得分:2)
printf
方法应该已命名为sprintf
。它返回格式化的字符串;它不打印它。尝试:
print $date->printf("It is now %b %e, %Y.\n");
Date::Manip可能是处理工作日最简单的方法,因为它内置了这个概念。您也可以使用DateTime::Set操作执行此操作(请参阅DateTime::Event::Holiday::US了解预设充满了美国假期。)
还有DateTime::BusinessHours,但我从未尝试过。
答案 1 :(得分:1)
DateTime
相比, Date::Manip
是轻量级的。另请查看Date::Business
。它可以处理假期和工作日(addb
)。