这是一个由两部分组成的问题:
我想用 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");
最佳答案
printf
方法应命名为 sprintf
。它返回格式化的字符串;它不打印它。尝试:
print $date->printf("It is now %b %e, %Y.\n");
Date::Manip可能是处理工作日最简单的方法,因为它内置了概念。您也可以使用 DateTime::Set 来做到这一点。操作(请参阅 DateTime::Event::Holiday::US 以了解预先填充美国假期的集合)。
还有DateTime::BusinessHours ,但我从未尝试过。
关于perl - 我应该使用哪个 CPAN 模块来提前计算工作日数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861538/