[PHP] 西暦から干支を求める (Switch文)
西暦から干支を求める方法を考えてみました。
西暦20xxと入力すると「〇年です」と出てくるようなアレです。
Contents
干支とは
干支は、十干と十二支を組み合わせた60を周期とする数詞。暦を始めとして、時間、方位などに用いられる。
https://ja.wikipedia.org/wiki/%E5%B9%B2%E6%94%AF
とあるので、私の意図していた子丑寅辰巳… は厳密にいうと十二支のようです。
十干と組み合わせた干支の求め方については後日考えます。
読んで字の如く十二支は12種類です。
ということで、西暦を12で割った余りの数を十二支に当てはまることで求めることができそうです。
計算方法
以下が直近の十二支対応表です。
干支 | 西暦 | 12で割った余り |
子 | 2008 | 4 |
丑 | 2009 | 5 |
寅 | 2010 | 6 |
卯 | 2011 | 7 |
辰 | 2012 | 8 |
巳 | 2013 | 9 |
午 | 2014 | 10 |
未 | 2015 | 11 |
申 | 2016 | 0 |
酉 | 2017 | 1 |
戌 | 2018 | 2 |
亥 | 2019 | 3 |
上記対応表では申が余り「0」となるので、これを利用して判定スクリプトを作成。
判定スクリプト
Switch分を使用してシンプルに「西暦÷12」の余りの数で判定します。
$q = 〇〇;
$r = $q%12;
switch($r) {
case 0:
$a = "申";
break;
case 1:
$a = "酉";
break;
case 2:
$a = "戌";
break;
case 3:
$a = "亥";
break;
case 4:
$a = "子";
break;
case 5:
$a = "丑";
break;
case 6:
$a = "寅";
break;
case 7:
$a = "卯";
break;
case 8:
$a = "辰";
break;
case 9:
$a = "巳";
break;
case 10:
$a = "午";
break;
case 11:
$a = "未";
break;
}
echo $q. "年は" .$a. "年です。";
これだけです。
switch文で余りの数字に対応した十二支を割り当てるだけで終了です。
ディスカッション
コメント一覧
まだ、コメントがありません