• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プルダウンで日付と曜日を取得する)

プルダウンで日付と曜日を取得する

このQ&Aのポイント
  • 年と月のプルダウンに関しては、2000~2020年・1~12月までをhtmlで追加してやれば良いのですが、たとえば、2000年の1月を選択したらポストバックして2000年1月に存在する日を「日」のプルダウンに表示させ、さらに、日付のプルダウンで28日と選択したらそれに対応する曜日をラベルに表示させる、といった場合にはどのようなコードを書けば可能でしょうか?
  • 開発環境はVisual Web Developer 2008 Express Edition(言語はVB.NET)です。年と月のプルダウンに関しては、2000~2020年・1~12月までをhtmlで追加してやれば良いのですが、日付のプルダウンに関しては、選択された年と月に存在する日数を判定し、該当する日数を「日」のプルダウンに表示させる必要があります。さらに、日付のプルダウンで選択された日に対応する曜日を求めて、ラベルに表示させる必要があります。
  • 開発環境はVisual Web Developer 2008 Express Edition(言語はVB.NET)です。年と月のプルダウンに関しては、htmlで2000~2020年・1~12月までの項目を作成します。日付のプルダウンに関しては、選択された年と月に存在する日数を判定し、該当する日数を「日」のプルダウンに表示させる必要があります。また、日付のプルダウンで選択された日に対応する曜日を求めて、ラベルに表示させる必要があります。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

『年』『月』のプルダウンのイベントとしてはSelectedIndexChangedを使えばいいでしょう 『日』はPreRenderイベントでいいと思いますよ たとえば 年がDDLYear 月がDDLMonth 日がDDLDay 曜日がLBLDaysといったIDならば Protected Sub DDLYear_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLYear.SelectedIndexChanged   ' 2月なら閏日があるかもしれないのでDDLDayを更新   If DDLMonth.SelectedValue = 2 Then     DDLDay.Items.Clear()   End If End Sub Protected Sub DDLMonth_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLMonth.SelectedIndexChanged   ' 月の変更時は DDLDayを更新   DDLDay.Items.Clear() End Sub Protected Sub DDLDay_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles DDLDay.PreRender   Dim dt As Date   If DDLDay.Items.Count = 0 Then     ' 日の更新時の処理     ' 選択年月の1日の日付を生成     dt = New Date(CInt(DDLYear.SelectedValue), CInt(DDLMonth.SelectedValue), 1)     ' 翌月の前日つまり指定の月末を取得     dt = dt.AddMonths(1).AddDays(-1)     For n As Integer = 1 To dt.Day       DDLDay.Items.Add(n.ToString)     Next   End If   ' 選択年月日の日付を生成   dt = New Date(CInt(DDLYear.SelectedValue), CInt(DDLMonth.SelectedValue), CInt(DDLDay.SelectedValue))   ' 曜日の表示を更新   LBLDays.Text = dt.ToString("ddd") End Sub # コードの中の字下げ(インデント)には全角スペースを使用しています # エラーになるようなら置換してください