JpnForPhp\Converter\Converter::toJapaneseYear PHP Метод

toJapaneseYear() публичный статический Метод

Converts a year in Western format into Japanese format.
public static toJapaneseYear ( $year, integer $yearType = self::YEAR_KANJI, integer $numeralType = null ) : string
$year
$yearType integer : era name output format (kanji, kana, romaji)
$numeralType integer : the numeral type used
Результат string The Japanese year.
    public static function toJapaneseYear($year, $yearType = self::YEAR_KANJI, $numeralType = null)
    {
        if ($year < self::$mapEras[0]['year']) {
            throw new Exception('The year ' . $year . ' is before any of the known Japanese eras. The first era started in ' . self::$mapEras[0]['year'] . '.');
        }
        $max = count(self::$mapEras);
        $era = self::$mapEras[$max - 1];
        for ($i = 1; $i < $max; $i++) {
            $currentEra = self::$mapEras[$i];
            $startYear = $currentEra['year'];
            if ($startYear > $year) {
                $era = self::$mapEras[$i - 1];
                break;
            }
        }
        $eraValue = $year - $era['year'] + 1;
        if ($numeralType !== null) {
            $eraValue = self::toJapaneseNumeral($eraValue, $numeralType);
        }
        switch ($yearType) {
            case self::YEAR_KANJI:
                $eraName = $era['kanji'];
                $eraValue .= '年';
                break;
            case self::YEAR_ROMAJI:
                $eraName = $era['romaji'] . ' ';
                break;
            case self::YEAR_KANA:
                $eraName = $era['kana'];
                $eraValue .= 'ねん';
                break;
            default:
                throw new Exception('Unknown year type');
        }
        return $eraName . $eraValue;
    }

Usage Example

Пример #1
0
 public function testConversionToJapaneseYearRomaji1336()
 {
     $result = Converter::toJapaneseYear(1336, Converter::YEAR_ROMAJI);
     $this->assertEquals('Shōkei 5', $result);
 }