ERA.JA(1)

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

SYNOPSIS
  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

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

METHODS

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;

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

EXAMPLES
  # 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 などで 置き換えるべきかもしれません。

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

AUTHOR
Tatsuhiko Miyagawa <miyagawa@bulknews.net>

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