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

George Nakamura nakamura.g @ teldevice.co.jp
2004年 3月 15日 (月) 16:42:47 JST


こんにちは。

もともとは、顧客の入力フォームで・・・というお話でしたよね。
<select>使っちゃだめですか?

現在から80年前〜19年前の生年を選択するようになっています。
デフォルトは35年前のところでブランク。
selectでセットされる値は、西暦です。

print("<select name=\"BOD1\">\n");
$YNOW = date("Y");$YEND = $YNOW - 19; $YDEF = $YNOW - 35;
$i = $YNOW - 80;
while($i <= $YEND) {
  if($i < 1912) {$reki = $i-1867;$reki="$i (明治 $reki 年)";}
  elseif($i == 1912) {$reki = $i-1867;$reki="$i (明治 $reki /大正 1 年)";}
  elseif($i < 1926) {$reki = $i-1911;$reki="$i (大正 $reki 年)";}
  elseif($i == 1926) {$reki = $i-1911;$reki="$i (大正 $reki /昭和 1 年)";}
  elseif($i < 1989) {$reki = $i-1925;$reki="$i (昭和 $reki 年)";}
  elseif($i == 1989) {$reki = $i-1925;$reki="$i (昭和 $reki /平成 1 年)";}
  else {$reki = $i-1988;$reki="$i (平成 $reki 年)";}
  print("<option value=\"$i\"");
  if($BOD1=="$i"){print(" selected");}
  print(">$reki</option>\n");
  if($i == $YDEF){
  print("<option value=\"\"");if($BOD1==""){print(" selected");}
  print(">----</option>\n");
  }
  $i++;
}
print("</select>年");


At 16:18 04/03/15, you wrote:
>自分は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]);

〜省略〜

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




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