[PHP-users 20807]Re: 西暦←→和暦 変換の方法について

PHPユーザー php_user_desu @ yahoo.co.jp
2004年 3月 15日 (月) 16:18:01 JST


こんにちわ。

> > 正規表現を使って入力データの妥当性をチェック。
> > 和暦入力の場合、西暦に変換。
> > checkdate()関数で日付の存在をチェック。
> 
> で、いきたいのですが、
> > 正規表現を使って入力データの妥当性をチェック。
> この部分、ど、どうやって・・・するのか
> ご指導いただけると助かります。

自分はperl言語からプログラムの世界に飛び込んだ人間なので、
preg_match()で書いてみます。思いつきで書いてみました。私のプログラ
ミングレベルはかなり低いので、そのつもりで読んで下さい。

function get_seireki($p_string) {
   if (preg_match('/^([HSTM])(\d{1,2})$/', $p_string, $match_ary)) {   //和暦
      return change_into_seireki($match_ary[1], $match_ary[2]);
   } elseif (preg_match('/^\d{4}$/', $p_string)) {   //西暦
      return $p_string;
   } else {   //エラー
      return FALSE;
   }
}

function change_into_seireki($p_nengo, $p_year) {
   switch($p_nengo) {   //和暦を西暦に変換する処理
      case 'H':   //平成
         break;

      case 'S':   //昭和
         break;

      case 'T':   //大正
         break;

      case 'M':   //明治
         break;
   }
}

西暦をチェックする処理は、もう少し丁寧に書いた方が良いかもしれませ
ん。和暦を西暦に変換する処理については、検索すれば幾らでも資料があ
る筈ですので割愛しました。


ここまで書いておいて何ですが、「S50」と入るか「1975」と入るのかが
予測できない様なインターフェース自体が、そもそもの間違いではないか
と個人的には思います。

プログラムを書く側ではなく、利用する側にとっても、それはあまり便利
と言えないような気がします。


-- 
php_user_desu @ yahoo.co.jp

__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/



PHP-users メーリングリストの案内