なぜか祝日判定がうまくいきません
Calendar::Japanese::Holiday を利用して以下の様な祝日判定のルーチンをテストしているのですが、なぜか#(1)あるいは#(2)のようにサブルーチン内部で値を明示してやらないと正常動作(祝日判定)しません。
そこでCalendar::Japanese::HolidayのisHolidayルーチンの方に値が正常に渡っていないのかと考え、#(3)のようなチェック用のソースを組み入れてみたりもしたのですが、$year, $mon, $dayそれぞれ正常に値は渡っていました。
どのようにすれば正常動作するようになるのでしょうか?
my %spdate = (#すでに$y、$m、$dにはそれぞれ2012、05、05と値が入っています。
'year' =>$y,
'month' =>$m,
'day' =>$d,
);
$spdate = \%spdate;
&check_date($spdate);
sub &check_date{
my($spdate) = @_;
#($spdate->{year},$spdate->{month},$spdate->{day})=(2012,05,05); #(1)
#my $jpholiday = isHoliday(2012,05,05); #(2)
my $jpholiday = isHoliday($spdate->{year},$spdate->{month},$spdate->{day});
if($jpholiday){ push(@error, 'It is a holidays today'); }
}#end
#Calendar::Japanese::Holiday
#http://search.cpan.org/~kztomita/Calendar-Japanese-Holiday-0.03/
sub isHoliday {
my ($year, $mon, $day, $furikae) = @_;
#test #(3)
print "Content-type: text/html; charset=utf8\n\n";
print "$year";
print "$mon";
print "$day";
my $holidays;
if ($year == $Cache_holidays_Year &&
$mon == $Cache_holidays_Month) {
$holidays = $Cache_holidays; # From Cache
} else {
$holidays = getHolidays($year, $mon, 1);
return if not defined $holidays;
# Cache
$Cache_holidays = $holidays;
$Cache_holidays_Year = $year;
$Cache_holidays_Month = $mon;
}
return if !exists $holidays->{$day};
return if (!$furikae && $holidays->{$day} eq $FurikaeStr);
return $holidays->{$day};
}#end
補足
ありがとうございます。 いただいた内容は、アカウントにログイン後のカレンダー機能の設定についてのような気がします。 私の意図したものと上記URLの該当部分は、ログインせず使えるものです。 先々月くらいにapi仕様が変更されたようで、 上記URL内にありますように、ullCalender利用時も取り込めていたのですが、 ふと見ると表示されなくなっていた為、お尋ねした次第です。