ある日付からn営業日前の日付は? (祝日も考慮して)
2007/1/12の8営業日前は2006/12/29。
use Date::Business; use Date::Japanese::Holiday; my $origin_date = '20070112'; my $offset = -8; my $date = Date::Business->new( DATE => $origin_date, OFFSET => $offset, HOLIDAY => \&holiday, ); print $date->image, "\n"; sub holiday { my ($start, $end) = @_; my $n_holiday = 0; my $d = Date::Simple::d8($start); while ($d->as_d8 <= $end) { if (1 <= $d->day_of_week && $d->day_of_week <= 5 && $d->is_holiday) { $n_holiday++; } $d = $d->next; } return $n_holiday; }
DateTime::*系とか使ってもっとスマートな方法ないかしらん。