• ベストアンサー

プログラム

プログラミングについてなのですが、VBのWindowsapplicationにて、自分の誕生日を入力し、buttonをクリックすると星座が出てくるプログラムを作りたいのですが、配列を使って作る場合、どのようなプログラムにしたらよいのですか

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

私は星座に全く関心が無く、知識もありません。WEBで調べて下記のような表(配列)をつくりました。その表を引くのであればと下記コードを作ってみました。 フォームにテキストボックス1つ(下記ではTextBox1)コマンドボタン1つ(下記ではButton2) を設けます。 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim d As Date Dim b As Date Dim k As Date Dim i As Integer d = Date.Parse(TextBox1.Text) MsgBox((d.Year.ToString) & "年") Dim t(,) As String = {{"3月21日", "4月20日", "おひつじ座"}, _ {"4月21日", "5月21日", "おうし座"}, _ {"5月22日", "6月21日", "ふたご座"}, _ {"6月22日", "7月23日", "かに座"}, _ {"7月24日", "8月23日", "しし座"}, _ {"8月24日", "9月23日", "おとめ座"}, _ {"9月24日", "10月22日", "てんびん座"}, _ {"10月23日", "11月22日", "さそり座"}, _ {"11月23日", "12月22日", "いて座"}, _ {"12月23日", "1月20日", "やぎ座"}, _ {"1月21日", "2月20日", "みずがめ座"}, _ {"2月21日", "3月20日", "うお座"}} b = Date.Parse(TextBox1.Text) For i = 0 To 11 k = Date.Parse(d.Year.ToString & "年" & t(i, 0)) If b < k Then MsgBox(t(i - 1, 2)) End If Next i End Sub 上記では、メッセージボックスに表示が出ますが、テキストボックスに表示は簡単と思いますので省略。 年月日数字は半角、誕生日は昭和何年何月何日でテストした。

asanochage
質問者

お礼

ありがとうございます!

その他の回答 (3)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

星座の配列、各星座の最初の日または最後の日の配列を作る。 誕生日で各星座の日の配列を検索(For NextのLoop)し「何番目にあるかを見つける。 見つかった番号で星座を表示。 やぎ座の判定にちょっと工夫が必要かな。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

>配列を使って作る と言うのを具体的にされては? ⇒例えば星座名を配列に入れるとか? *こちらに質問がたっていたので【補足】してみました。

asanochage
質問者

補足

星座名か誕生日につかいたいんですが・・・

  • soaikats
  • ベストアンサー率58% (14/24)
回答No.1

Select文を使ってはどうですか? Select case(Format(txt誕生日.Value),"mmdd"))  case <=119, >=1222   Debug.print "やぎ座"  case <=218   Debug.print "みずがめ座" … End Select

関連するQ&A