前書き
こんにちは。@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;
}
}