Date-Japanese-Era-0.03 > Date::Japanese::Era

名前

Date::Japanese::Era - 和暦と西暦の相互変換

概要

  use Date::Japanese::Era;

  # グレゴリア暦から (月と日が必須)
  $era = Date::Japanese::Era->new(1970, 1, 1);

  # 和暦から
  $era = Date::Japanese::Era->new('昭和', 52);

  $name      = $era->name;         # '昭和' in EUC-jp (default)
  $gengou    = $era->gengou;       # 同上

  $year      = $era->year;         # 52
  $gregorian = $era->gregorian_year;       # 1977

  # JIS X0301 テーブルを変換に使用する
  use Date::Japanese::Era 'JIS_X0301';

説明

Date::Japanese::Era は和暦と西暦(グレゴリア暦)の相互変換を行うモジュー ルです。

メソッド

codeset
  $codeset = Date::Japanese::Era->codeset;
  Date::Japanese::Era->codeset($encoding);

和暦の文字エンコーディングを設定/取得します。例えば以下のコードでは、 和暦の入出力は UTF-8 エンコードされます。

  Date::Japanese::Era->codeset('utf8');
  $era = Date::Japanese::Era->new($name, $year); # $name は UTF-8
  print $era->name;                              # これも UTF-8

この機能を利用するには Jcode モジュールが必要です。ない場合には codeset() の呼び出しは、warning が出力され、無視されます。

new
  $era = Date::Japanese::Era->new($year, $month, $day);
  $era = Date::Japanese::Era->new($era_name, $year);

あたらしく Date::Japanese::Era クラスのインスタンスを生成します。グレ ゴリア暦から生成する場合には、月と日が必須です。グレゴリア暦からの変換 には Date::Calc が必要です。

元号名は日本語か ASCII のどちらでもかまいません。Jcode モジュールがイ ンストールされている場合は、エンコードを codeset() で設定できます。デ フォルトは EUC-JP です。

入力が不正な場合(たとえば、元号と年の存在しない組合せや、存在しない元 号名など)、例外が投げられます。

name
  $name = $era->name;

元号名を日本語で返します。エンコーディングは codeset() で設定できます。 デフォルトは EUC-JP です。

gengou

name() の別名です。

name_ascii
  $name_ascii = $era->name_ascii;

元号名を US-ASCII で返します。

year
  $year = $era->year;

年を和暦で返します。

gregorian_year
  $year = $era->gregorian_year;

年をグレゴリア暦で返します。

  # 2001年は H-13
  my $era = Date::Japanese::Era->new(2001, 8, 31);
  printf "%s-%s", uc(substr($era->name_ascii, 0, 1)), $era->year;

  # 西暦に変換
  my $era = Date::Japanese::Era->new('平成', 13);
  print $era->gregorian_year;   # 2001

CAVEATS

  • 元号が変わった日は新しい方(後の方)の元号で扱われます。

  • 現状サポートしているのは「明治」以降です。

  • もし現在の元号(平成)が変わった場合、Date::Japanese::Era::Table をアッ プグレードする必要があります。(Table はグローバル変数として定義してあ るので、必要なら上書きすることとも出来ます)

TODO

  • 日付パラメータはいろんなフォーマットがありえます。Date::Simple などで 置き換えるべきかもしれません。

  • もっと前の元号もサポート。

作者

Tatsuhiko Miyagawa <[email protected]>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Date::Calc, Jcode, Date::Simple