LoginSignup
1
0

More than 5 years have passed since last update.

西暦→和暦に変換

Last updated at Posted at 2018-09-23

前書き

こんにちは。@mashiです。
今回はPHPにて西暦→和暦の変換を行います。(正直、今更という感じですが…)

正直、かなり粗い作りのため、JavaScript等でバリデーションをかけてあげたらよいかと思います。

コード

// 入力文字
$input_words = $argv[1]; // 画面から入力の場合は変更してください
$conversion_date = changeConversion($input_words);

echo $conversion_date . "\r\n";

// 西暦を和暦に変換
function changeConversion ($date) {
    // 簡単なエラーチェック
    if (strlen($date) != 8) {
        echo "生年月日を8桁の西暦で入力してください\r\n";
        exit;
    }

    $year = substr($date, 0, 4);
    $month = substr($date, 4, 2);
    $day = substr($date, 6, 2);

    if ($date) {
        switch ($date) {
            case $date > 19890108:
                $year_number = $year - 1988;
                $year_value = "平成";
                break;
            case $date > 19261225:
                $year_number = $year - 1925;
                $year_value = "昭和";
                break;
            case $date > 19120730:
                $year_number = $year - 1911;
                $year_value = "大正";
                break;
            case $date >= 18680908:
                $year_number = $year - 1867;
                $year_value = "明治";
                break;
            default:
                $year_number = $year;
                $year_value = null;
                break;
        }

        //初年度なら元年と返す
        if ($year_number == 1) {
            $year_number = "元";
        }

        $return_value = $year_value . $year_number . "年" . $month . "月" . $day . "日";

        return $return_value;
    }
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0