
Date::Japanese::Era - Conversion between Japanese Era / Gregorian calendar

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("\x{662D}\x{548C}", 52); # SHOWA
$name = $era->name; # \x{662D}\x{548C} (Unicode flagged)
$gengou = $era->gengou; # Ditto
$year = $era->year; # 52
$gregorian = $era->gregorian_year; # 1977
# use JIS X0301 table for conversion
use Date::Japanese::Era 'JIS_X0301';
# more DWIMmy
use encoding 'utf-8';
$era = Date::Japanese::Era->new("昭和五十二年");
$era = Date::Japanese::Era->new("昭和52年");

Date::Japanese::Era handles conversion between Japanese Era and Gregorian calendar.

$era = Date::Japanese::Era->new($year, $month, $day); $era = Date::Japanese::Era->new($era_name, $year); $era = Date::Japanese::Era->new($era_year_string);
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. If you pass Japanese, the variable should be properly UTF-8 flaged.
Exceptions are thrown when inputs are invalid (e.g: non-existent era name and year combination, unknwon era-name, etc.).
$name = $era->name;
returns era name in Japanese in Unicode.
alias for name().
$name_ascii = $era->name_ascii;
returns era name in US-ASCII.
$year = $era->year;
returns year as Japanese era.
$year = $era->gregorian_year;
returns year as Gregorian.

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("\x{5E73}\x{6210}", 13); # HEISEI 13
print $era->gregorian_year; # 2001

To use calendar ealier than that, see DateTime::Calendar::Japanese::Era, which is based on DateTime framework and is more comprehensive.
use Date::Japanese::Era 'JIS_X0301';
For example, 1912-07-30 is handled as:
default Taishou 1 07-30 JIS_X0301 Meiji 45 07-30

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.
