PHPで干支を表示する

このQ&Aのポイント
  • HTMLのフォームから送られた西暦を和暦に変換し、干支を表示する方法について質問させてください。
  • 和暦への変換はできたが、干支の表示方法が分からず困っています。
  • 現在のプログラムでは、和暦に変換した後の表示のみが行われており、干支の表示に関する処理が書かれていません。教えていただけると助かります。
回答を見る
  • ベストアンサー

PHPで干支を表示する

以前、QNo.1446745でお世話になったものです。 http://okweb.jp/kotaeru.php3?q=1446745 今回も分からない点があるので質問させてもらいます。 htmlのフォームから西暦を送って和暦に変換し同時に干支を表示すると言う課題が出ました。 和暦への変換は出来たのですが干支の表示表示方法が調べたのですが見つからず困っています。 一応、和暦変換のプログラムは if ($toshi >= 1989){ echo "平成".($toshi-1988)."年<br>"; } elseif (1926 <= $toshi and $toshi <= 1988){ echo "昭和".($toshi-1925)."年<br>"; } elseif (1912 <= $toshi and $toshi <= 1987){ echo "大正".($toshi-1911)."年<br>"; } else { echo "明治".($toshi-1867)."年<br>"; } ※$toshiはフォームから送られた変数です。 こんな感じで作ることが出来たのですが書いたとおり干支の表示方法がさっぱりです。 答えでもヒントでもいいので教えていただけないでしょうか? 書いてあるプログラムは皆様方からみれば稚拙でしょうが重大な問題がない限りはツッコミはなしでお願いします。 かなり苦労して出来上がったものなので…

  • DEGI
  • お礼率61% (76/124)
  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

訂正です。 $juunishi = ("申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未"); 「猿から始まる」なんて書いておいて、猿から始まってませんでしたね(^^;

DEGI
質問者

お礼

無事に完成いたしました。 こんな低レベルな問題に答えていただき本当にありがとうございます。 助かりました。

その他の回答 (1)

回答No.1

十二支ならうるう年のようなおかしなルール(プログラムにしようとした場合に困るルールという意味)が無いので、単純に12で割った余りを干支に変換すれば良いのではないでしょうか。直近の12で割り切れる年は去年で猿ですから、猿から始まる十二支を配列で持てば良いでしょう。 $juunishi = array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"); $result1 = $juunishi[($toshi % 12)]; また干支であればこの十二支に加えて10で割る十干があるので $jikkan = array("庚","辛","壬","癸","甲","乙","丙","丁","戊","己"); $result2 = $jikkan[($toshi % 10)]; この二つを連結すれば干支が出せると思います。 ノーテストなのと、干支の定義が間違ってるかも(並びとか、西暦=干支の対応とか)個々の項目の確認はして下さいね。

関連するQ&A

  • 和暦→西暦(有効範囲を考慮)

    いつもお世話になってます。 VB2010(.NET2.0)、Winアプリ 和暦(元号)と西暦の相互変換についてです。 CultureInfo、JapaneseCalendarを使用して変換しています。 西暦→和暦の変換は問題ないんですが 和暦→西暦の変換時に有効ではない和暦を指定するとエラーとなります。 ここの「有効ではない和暦」というのは例えば「大正30年」とかです。 フォーム上にComboBoxとTextBoxが配置されており ComboBoxには「明治」「大正」「昭和」「平成」を格納、 TextBoxは数値入力のみですが2桁数値というだけで 他の制限はかけていない状態です。 各元号に有効な値を保持しといてって方法は最終手段です。 出来るだけ汎用性を持たせた形で上記エラーを回避したいと思っています。 思いついてる方法はあまりスマートではないので どなたか、こんな風にコーディングすれば出来るよって ヒントでもいいのでご意見いただけると幸いです。 よろしくお願いしますm(_ _)m

  • PHPでユーザ登録フォーム&表示プログラムの作成

    質問させていただきます。 PHPでユーザ登録フォームと表示プログラムの作成をしているのですが、 登録フォームはなんとかできたのですが、表示プログラムに添付画像のようにテーブルに出力させるにはどうやればいいでしょうか。 またこのプログラムだと若干エラーが出ているようでそれも気になりまして、教えていただければ幸いです。 <?php echo "<table border=1>"; echo "<tr><td>姓(名前){$_POST['ln']}</tr></td><tr><td>名(名前){$_POST['fn']}</tr></td><br />"; echo "性別 : "; if($_POST['seibetsu'] =="1") echo "男"; else echo "女"; echo "<br />"; echo "都道府県 : {$_POST['pref']}<br />"; echo "市区町村 : {$_POST['addr1']}<br />"; echo "番地 : {$_POST['addr2']}<br />"; echo "生年月日 : {$_POST['year']}年{$_POST['month']}月{$_POST['day']}日<br />"; echo "アドレス : {$_POST['email']}<br />"; echo "電話番号 :{$_POST['phone1']}-{$_POST['phone2']}-{$_POST['phone3']}<br />"; ?>

    • ベストアンサー
    • PHP
  • Excel 干支を表示する VBA?

     エクセルに興味を持っています。。 既成(だれか先輩?)の表では      A        B 1  平成13年    庚辰 2  大正6年     丁巳 3  昭和24年    【=えと】     A列の年号はシリアル値で入力されています。       右側セルに【=えと】と表示すると干支が表示されます。     BVAであることが分かりました。     どんな式が隠されているのか興味があります。  どなたか教えてください。  m(__)m         

  • H22.01.01というように和暦表示する方法

    Excel2019利用です。 たとえば2010年というように、まず西暦を打ち、表示形式で和暦に変換する方法がありますが、そうではなく、たとえば「22-1-1」と入力したあと、 H22.01.01 となるように和暦表示できる方法がありましたら教えてください。

  • 日付データの西暦・和暦について

    よろしくお願いします。 Vb2005とAccess2003でWinアプリを開発しています。 データベースに日付データを西暦で蓄積して、期間合計を出したりその他の処理を行っていました。 フォーム上にDateTimePikerやMonthCalendarといったユーザーコントロールを配置していますが、これも西暦です。 印刷等もすべて西暦表示で行っています。 これを、すべて和暦にして欲しいと言われたのですが、Accessのデータベースも和暦で日付データを蓄積するのが良いのでしょうか? それとも、フォーム上で和暦で入力されたデータを西暦に変換して蓄積するほうが普通なのでしょうか? 元号が変更になった場合等を考えれば、帳票類も西暦のほうがプログラムの変更(更新)の手間がなく良いような気がするのですが、和暦って結構ニーズがあったりしますでしょうか?(私は経験が浅いのでよくわからず、素朴な疑問です) DateTimePikerの和暦表示については、紹介サイトがあったのですが、MonthCalendarについては和暦表示できるのかわかりませんでした。方法がありましたら教えてください。 日付の西暦・和暦について、アプリケーションを作るうえでのアドバイス等もありましたらあわせてお願い致します。

  • Accessで和暦でも西暦でも入力・表示可能にするには?

    Accessのフォームで生年月日を入力するテキストボックスを配置しています。 基本は和暦入力なのですが、外国人の方もいるため、西暦入力のこともあるのです。 和暦で入力した場合は和暦で、西暦で入力した場合は西暦で表示されるようにしたいのですが、何かよい方法はないでしょうか?

  • excelで西暦と和暦を表示・変換させたい

    (1) A1に「1980」などと打ち込み、それを西暦「1980年」と表示させたい。 (2) A2で、A1を「昭和55年]と和暦に変換したものを表示させたい。 (1)、(2)を行いたいのですが、どうしたら良いでしょうか?

  • javascriptで入力フォームに日付(和暦)を入力して西暦表示にする方法と曜日を表示させる方法を教えて下さい。

    凄く悩んでいるのですが、良かったら教えてください。 入力フォームに 日付 平成16年07月28日なら 『160728』 と入力し、そのすぐ横に 曜日を『(月)』と表示させたい のですが、どうもうまくいきません。 教えてください。 以前教えていただいた西暦「20040728」 と入力したら、(水)と出たのですが、 和暦入力の場合でわからなくて、困っています。 テキストフォームに(月)と表示させたいのでは なく、<span>タグを使用して作成したいのです。 また、和暦を『160728』入力したら、 表示先には、西暦「20040728」と表示させる には、どうしたらいいでしょうか? ご伝授お願いします。

  • 質問

    アクセスで西暦から和暦に変換するにはどうやってクエリを組めばいいでしょうか テーブルのインポートした時のフォームが 日付になってしまって 2011年9月3から、和暦230903に変更したいのですがどうすればできますか

  • 西暦→和暦

    avaで、西暦→和暦に変換するプログラムを組みたいのですが、 例えば、 2008/11/22 と入力したら、 平成20年11月22日 と表示されるようなプログラムを作りたいのですが、 (昭和と平成のみ対応) 教えて下さい…m(__)m

専門家に質問してみよう