無料Wikiサービス | デモページ
Linuxなどのメモ書き
検索

Adsense

Perl 祝日名の取得 の差分
Rev.4→Rev.5  追加箇所 削除箇所


編集中。

Calendar::Japanese::Holiday

祝日の一覧取得、祝日判定、祝日名の取得ができるPerl モジュールです。現在CPANにアップ中。

概要

このモジュールで以下のことを行えます。

  • 指定年月の祝日一覧の取得
  • 指定日の祝日判定

祝日判定で祝日だった場合は、祝日名を返すので祝日名の取得もできます。

使用例


use Calendar::Japanese::Holiday;

# 祝日一覧の取得
$holidays = getHolidays(2008, 5);
$holidays = getHolidays(2008, 5, 1);

# 祝日かどうかの判定
$name = isHoliday(2007, 5, 5);

関数

  • getHolidays($year, $month [, $furikae])
指定した年月($year, $month)の祝日一覧を格納したハッシュへのリファレンスを返します。ハッシュのKeyが日付、値が祝日名になります。祝日がない場合は、空のハッシュへのリファレンスを返します。undefが返った場合はエラーです。$yearは1970以降のみサポートしています。1970より前を指定した場合は、undefが返ります。
$holidays = getHolidays(2008, 5);

返された$holidaysの内容:
$holidays = {
             '4' => "みどりの日",
             '3' => "憲法記念日",
             '5' => "こどもの日" 
            };
$furikaeを1(真)にして呼び出すと振替休日も一緒に返すようになります(以下、参照)。省略時は偽で振替休日は含めません。
$holidays = getHolidays(2008, 5, 1);

返された$holidaysの内容:
$holidays = {
             '6' => "振替",
             '4' => "みどりの日",
             '3' => "憲法記念日",
             '5' => "こどもの日" 
            };


  • isHoliday($year, $month, $day [, $furikae])

指定した日が祝日かどうかを調べます。祝日の場合は祝日名を返します。祝日でなければ、undefを返します。

$furikaeはgetHolidays()と同じで、真を指定すると振替休日となる日についても祝日と判定するようになります("振替"が返る)。

$name = isHoliday(2007, 5, 5);

返された$nameの内容
$name = "こどもの日"

その他


祝日はそのじて移動したりする場合がありますがモジュールではこれらの情報しくします

例えば4月29日は1989〜2006年までは「みどりの日」でしたが、2007年からは「昭和の日」となりました(「みどりの日」は5月4日に移動)。これらの情報を正しく取得できるか、以下のスクリプトで試してみます。

use Calendar::Japanese::Holiday;
use open OUT  => ":utf8";
use open ":std";

print "2006/4/29: ".isHoliday(2006, 4, 29), "\n";
print "2007/4/29: ".isHoliday(2007, 4, 29), "\n";
print "2007/5/4:  ".isHoliday(2007, 5,  4), "\n";

上記のスクリプトを実行すると、以下のように年に応じた祝日名を取得できているのがわかります。

2006/4/29: みどりの日
2007/4/29: 昭和の日
2007/5/4:  みどりの日