PHP で年齢計算ツールを作成
PHPで年齢計算ツールを作成しました。
和暦と年齢、十二干支も見れるようにしています。
そのソースを公開します。
年齢計算ツールはこちらになります。
年齢の計算方法
年齢は、この計算方法でもとめることができます。
(本日の年月日8桁 – 誕生日の年月日8桁) / 10000
(本日の年月日8桁 – 誕生日の年月日8桁) / 10000
// 誕生日の年月日を8桁の数字に変更 $birthday_yyyymmdd = sprintf("%04d%02d%02d", $yyyy, $mm, $dd); // (本日の年月日8桁 - 誕生日の年月日8桁) / 10000 $nenrei = (int) ((date('Ymd')-$birthday_yyyymmdd)/10000); echo $nenrei . "歳";
西暦和暦年月日の関数
1年は、元年で表示しています。
//--------------------------------- // 西暦和暦年月日 // 引数 $yyyy 年 // $mm 月 // $dd 日 // 戻り値 西暦年月日+和暦年月日 //--------------------------------- function getSeirekiToWareki($yyyy, $mm, $dd){ $seireki = sprintf("%d年%d月%d日", $yyyy, $mm, $dd); $yyyymmdd = sprintf("%04d%02d%02d", $yyyy, $mm, $dd); if($yyyymmdd>=18680125 && $yyyymmdd<=19120729){ $yyyy = $yyyy - 1867; if($yyyy==1){ $yyyy = "明治元"; } else{ $yyyy = "明治" . $yyyy; } $wareki = sprintf("%s年%d月%d日", $yyyy, $mm, $dd); } elseif($yyyymmdd>=19120730 && $yyyymmdd<=19261225){ $yyyy = $yyyy - 1911; if($yyyy==1){ $yyyy = "大正元"; } else{ $yyyy = "大正" . $yyyy; } $wareki = sprintf("%s年%d月%d日", $yyyy, $mm, $dd); } elseif($yyyymmdd>=19261226 && $yyyymmdd<=19890107){ $yyyy = $yyyy - 1925; if($yyyy==1){ $yyyy = "昭和元"; } else{ $yyyy = "昭和" . $yyyy; } $wareki = sprintf("%s年%d月%d日", $yyyy, $mm, $dd); } elseif($yyyymmdd>=19890108 && $yyyymmdd<=20190430){ $yyyy = $yyyy - 1988; if($yyyy==1){ $yyyy = "平成元"; } else{ $yyyy = "平成" . $yyyy; } $wareki = sprintf("%s年%d月%d日", $yyyy, $mm, $dd); } elseif($yyyymmdd>=20190501){ $yyyy = $yyyy - 2018; if($yyyy==1){ $yyyy = "令和元"; } else{ $yyyy = "令和" . $yyyy; } $wareki = sprintf("%s年%d月%d日", $yyyy, $mm, $dd); } return $seireki . "(" . $wareki . ")"; }
十二干支の取得関数
干支は、年を12で割ったあまりから判断することができます。
申(さる)
0 = 申(さる)
1 = 酉(とり)
2 = 戌(いぬ)
3 = 亥(いのしし)
4 = 子(ねずみ)
5 = 丑(うし)
6 = 寅(とら)
7 = 卯(うさぎ)
8 = 辰(たつ)
9 = 巳(へび)
10 = 午(うま)
11 = 未(ひつじ)
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]; }