NAME
Date::Japanese::Era - Conversion between Japanese Era / Gregorian
calendar
SYNOPSIS
use Date::Japanese::Era;
# from Gregorian (month + day required)
$era = Date::Japanese::Era->new(1970, 1, 1);
# from Japanese Era
$era = Date::Japanese::Era->new('����', 52);
$name = $era->name; # '����' in EUC-jp (default)
$gengou = $era->gengou; # same
$year = $era->year; # 52
$gregorian = $era->gregorian_year; # 1977
DESCRIPTION
Date::Japanese::Era handles conversion between Japanese Era and
Gregorian calendar.
METHODS
codeset
$codeset = Date::Japanese::Era->codeset;
Date::Japanese::Era->codeset($encoding);
sets / gets external encoding of Japanese era names. For example
with the following code, input and output of era names are encoded
in UTF-8.
Date::Japanese::Era->codeset('utf8');
$era = Date::Japanese::Era->new($name, $year); # $name is UTF-8
print $era->name; # also UTF-8
You need Jcode module installed to make use of this feature.
Otherwise, calls to codeset() are simply ignored (with warning).
new
$era = Date::Japanese::Era->new($year, $month, $day);
$era = Date::Japanese::Era->new($era_name, $year);
Constructs new Date::Japanese::Era instance. When constructed from
Gregorian date, month and day is required. You need Date::Calc to
construct from Gregorian.
Name of era can be either of Japanese / ASCII. Input encodings can
be specified via codeset(), suppose you have Jcode module installed.
Default is EUC-JP.
Exceptions are thrown when inputs are invalid (e.g: non-existent era
name and year combination, unknwon era-name, etc.).
name
$name = $era->name;
returns era name in Japanese. Encoding can be specified via
codeset() class method. Default is EUC-JP.
gengou
alias for name().
name_ascii
$name_ascii = $era->name_ascii;
returns era name in US-ASCII.
year
$year = $era->year;
returns year as Japanese era.
gregorian_year
$year = $era->gregorian_year;
returns year as Gregorian.
EXAMPLES
use Date::Japanese::Era;
# 2001 is H-13
my $era = Date::Japanese::Era->new(2001, 8, 31);
printf "%s-%s", uc(substr($era->name_ascii, 0, 1)), $era->year;
# to Gregorian
my $era = Date::Japanese::Era->new('ʿ��', 13);
print $era->gregorian_year; # 2001
CAVEATS
* Days when era just changed are handled as newer (later) one.
* Currently supported era is up to 'meiji'.
* If someday current era (heisei) is changed,
Date::Japanese::Era::Table should be upgraded. (Table is declared as
global variable, so you can overwrite it if necessary).
TODO
* Date parameters can be in various format. I should replace
Date::Simple or whatever for that.
* Support earlier eras.
AUTHOR
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
the Date::Calc manpage, the Jcode manpage, the Date::Simple manpage