「猫で言うと○歳!」

owl2006-07-01

年齢を聞く。25歳だったとする。そこで「…猫で言うと 3歳ですね。」と切り返す。このギャグ(ボケつつツッコミみたいなもの)が私(おうる)は大好きだ。自己紹介のときに自分の年齢を犬年齢で言うなんていう(コテコテのボケをかます)のも結構好きだ。
でも、実際のところ何歳なのかわからなければ、使えない。すぐ計算できるといいのだが、なかなか覚えていられるものでもない。一般に動物年齢を人間年齢に換算する際には、動物側の性成熟を人間側の 18歳なり 20歳にフォーカスし、あとは寿命で配分するというかたちのようで、つまり単純な 1次式にならない(グラフは折れ線になる)から暗算だと割と面倒。
以前、調べて、Excel で換算用のツールシートを作成したことはあったのだが、これは可搬性がよろしくない。ネット上ですぐ操作できるツール化されていると便利だ。
そこで、作ってみた。PHP であそぼう第2弾。データは多いほうがおもしろいと思ったので、馬年齢換算もできるようにしてみた。…当然だが、プロトコルとしては標準的な「動物→人間で言えば○歳」の計算もできる。

今回も、携帯可(たぶん全キャリア可)。というか、凝ったことしていないのでたぶん大丈夫。勿論 PC でも普通にいけるはず。

人間で歳 

外部から利用するならこんなかんじかな。(※ ブラウザの「戻る」ボタンで戻ってきてください。)
あとは、「http://hum.uah.jp/age.php?age=5&cat=on」とか「http://hum.uah.jp/age.php?age=36&uma=on」みたいなこと(URL環境変数とかいうんでしたっけ…による値のプリセット)もできるようにしてみてある。URL 経由で年齢を渡すととりあえず計算する仕様になっている。動物を指定しないと人間基準になる。
フォームについては、こんなかんじで貼っておくと age.php が利用可能。というか、こんな見本置かなくたって、ソース見ればいいだけの話だけど。

<FORM action="http://hum.uah.jp/age.php" method="post">
Age:<INPUT type"text" name="age" value="20"><BR>
<INPUT type="radio" name="base" value="h" checked> Human<br>
<INPUT type="radio" name="base" value="i"> Dog<br>
<INPUT type="radio" name="base" value="n"> Cat<br>
<INPUT type="radio" name="base" value="u"> Horse<br>
<INPUT type="submit" value=" CALC "><br>
<A href="http://d.hatena.ne.jp/owl/">&copy;Okibi Lab.</A>
</FORM>

PHP のソースにしたって、本来ならばデータベース機能(テーブル変換とかそういうようなアレ)を利用してもっとシンプル且つ美しく書けるだろうことは想像が付いているのだが、なんか配列変数の仕様を考えるのが面倒だし、かっこわるいの考えるぐらいなら使わないほうがあとでわかりやすいし、なんとなく for 文とか while 文を使う気力がなかったし(どこまでへたってるんだ)、機能を足しながら仕上げていくにはベタ書きのほうが楽だし…ということで、ソースの最適化はまたいつかの課題。
なお、年齢の換算式については、特にわんこにゃんこに関してはいろいろあったので、折角それぞれ出す関係上わんことにゃんこで値の違うものを採用した。概ねにおいては、生後 1年程度で成人とし、あとは 1年で 5歳程度ずつ、ということでそれほど違わない数字になるようだ。馬に関してもいくつかの案があるようだが、今回は「ひだか博士の馬文化教室」というサイトのコンテンツを参照させて頂いた。
因みに私(おうる)の年齢は、ベニクラゲで言うと #NUM! 歳。カゲロウで言うとあと数時間。