PHPで「西暦・和暦・年齢・干支 早見表」を作成

  • 2020.04.10
  • PHP
PHPで「西暦・和暦・年齢・干支 早見表」を作成

たまに西暦から和暦を調べたいことがあったので、PHPで西暦和暦の早見表を作成しました。
年齢と十二干支も見れるようにしています。
その関数を公開します。

作成した西暦・和暦・年齢・干支 早見表はこちらになります。

西暦→和暦変換関数

//---------------------------------
// 西暦から和暦に変換
// 引数 $yyyy 西暦年
// 戻り値 和暦
//---------------------------------
function getSeirekiToWareki($yyyy){
    if($yyyy>=1868 && $yyyy<=1911){
        $yyyy = $yyyy - 1867;
        if($yyyy==1){
            $yyyy = "明治元年(慶応4年)";
        }
        else{
            $yyyy = "明治" . $yyyy . "年";
        }
    }
    elseif($yyyy<=1925){
        $yyyy = $yyyy - 1911;
        if($yyyy==1){
            $yyyy = "大正元年(明治45年)";
        }
        else{
            $yyyy = "大正" . $yyyy . "年";
        }
    }
    elseif($yyyy<=1988){
        $yyyy = $yyyy - 1925;
        
        if($yyyy==1){
            $yyyy = "昭和元年(大正15年)";
        }
        else{
            $yyyy = "昭和" . $yyyy . "年";
        }
    }
    elseif($yyyy<=2018){
        $yyyy = $yyyy - 1988;
        
        if($yyyy==1){
            $yyyy = "平成元年(昭和64年)";
        }
        else{
            $yyyy = "平成" . $yyyy . "年";
        }
    }
    elseif($yyyy>=2019){
        $yyyy = $yyyy - 2018;
        if($yyyy==1){
            $yyyy = "令和元年(平成31年)";
        }
        else{
            $yyyy = "令和" . $yyyy . "年";
        }
    }
    return $yyyy;
}

十二干支の取得関数

干支は、年を12で割ったあまりから判断することができます。

申(さる)
0 = 申(さる)
1 = 酉(とり)
2 = 戌(いぬ)
3 = 亥(いのしし)
4 = 子(ねずみ)
5 = 丑(うし)
6 = 寅(とら)
7 = 卯(うさぎ)
8 = 辰(たつ)
9 = 巳(へび)
10 = 午(うま)
11 = 未(ひつじ)
//---------------------------------
// 干支を取得
// 引数 $yyyy 西暦年
// 戻り値 干支
//---------------------------------
function getEto($yyyy){
    $amari = $yyyy % 12;
	
    $arr_eto = array(
        "申(さる)",
        "酉(とり)",
        "戌(いぬ)",
        "亥(いのしし)",
        "子(ねずみ)",
        "丑(うし)",
        "寅(とら)",
        "卯(うさぎ)",
        "辰(たつ)",
        "巳(へび)",
        "午(うま)",
        "未(ひつじ)"
        );
	
    return $arr_eto[$amari];
}

表を作成

<table class="table table-sm table-bordered table-hover">
<thead>
<tr class="table-primary">
	<th>西暦</th>
	<th>和暦</th>
	<th>年齢</th>
	<th>十二干支</th>
</tr>
</thead>
<tbody>
<?php 
for($yyyy=date("Y"); $yyyy>=1868; $yyyy--){
	?>
	<tr>
		<td><?php echo $yyyy; ?>年</td>
		<td><?php echo getSeirekiToWareki($yyyy); ?></td>
		<td><?php echo date("Y") - $yyyy; ?>歳</td>
		<td><?php echo getEto($yyyy); ?></td>
	</tr>
	<?php 
}
?>
</tbody>
</table>