サンプル コードのダウンロード (aspnettips_CodeFolder.msi, 253 KB)
※このサンプルをお使いいただくためには、 Visual Studio 2005 が必要です。
アプリケーション内の各ページで共通して利用するルーチンは、クラスとして 1 箇所にまとめておくと便利です。ASP.NET 2.0 は、このような用途のために App_Code フォルダという特別なフォルダを用意しています。
共通のデータアクセス ルーチンや、よく利用するアルゴリズムを、App_Code フォルダ内にクラスとして用意しておけば、特別な手続きなしにどのページからもアクセスできます。
今回は、次のようなページを作成します(図1) 。年月日を入力して、[曜日を求める] ボタンを押すと、その日が何曜日かを表示します。
.gif)
図 1 今回作成するページ
次の手順でページを作成します。
App_Code フォルダの作成
クラスファイルの作成
各コントロールの配置
[曜日を求める] ボタンのクリックハンドラを記述
実行
(1) App_Code フォルダの作成
最初に、App_Code フォルダを作成します。Visual Studio 2005 のソリューション エクスプローラ内で、仮想フォルダを右クリックし、ポップアップメニューから [ASP.NET フォルダの追加] - [App_Code] を選択します。App_Code フォルダが追加されます(図2)。
.gif)
図 2 App_Code フォルダ
(2) クラスファイルの作成
App_Code フォルダ内に、日付から曜日を計算するクラスを作成します。ソリューション エクスプローラ内で、App_Code フォルダ右クリックし、ポップアップメニューから [新しい項目の追加] を選択します。「新しい項目の追加」ダイアログボックスで、「クラス」を選択し、ファイル名として「WeekClass.vb」を指定してください(図3)。App_Code フォルダ内に WeekClass.vb が追加されます。
.gif)
図 3 クラスファイルの作成
作成したWeekClass.vb 内に、曜日を計算する関数を追加します。
Public Class WeekClass
Public Function GetDayOfWeek(ByVal nYear As Integer, ByVal nMonth As Integer, ByVal nDay As Integer) As String
Dim strDayOfWeek() As String = {"日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"}
Dim zeller As Integer
If nMonth < 3 Then
nYear = nYear - 1
nMonth = nMonth + 12
End If
zeller = (nYear + (nYear \ 4) - (nYear \ 100) + (nYear \ 400) + ((13 * nMonth + 8) \ 5) + nDay) Mod 7
GetDayOfWeek = strDayOfWeek(zeller)
End Function
End Class
|
リスト1 WeekClass.vb
WeekClass のメンバ関数 GetDayOfWeek は、年月日を受け取って、曜日を文字列で返します。曜日は、ツェラーの公式を使って計算しています。
(3) 各コントロールの配置
Default.aspx に、使用するコントロールを配置します。TextBox コントロール、Button コントロール、Label コントロールを次のように配置してください。
.gif)
図 4 各コントロールの配置
各コントロールのプロパティは、次のように設定します。
コントロール |
プロパティ |
値 |
|---|---|---|
TextBox |
ID |
TextBoxYear |
TextBox |
ID |
TextBoxMonth |
TextBox |
ID |
TextBoxDay |
Button |
ID |
YoubiButton |
|
Text |
曜日を求める |
Label |
ID |
YoubiLabel |
|
Text |
(空白) |
(4) [曜日を求める] ボタンのクリックハンドラを記述
[曜日を求める] ボタンを押したときのハンドラを記述します。Default.aspx.vb に次のコードを追加します。
Protected Sub YoubiButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles YoubiButton.Click Dim WeekObj As New WeekClass Dim youbi As String youbi = WeekObj.GetDayOfWeek(CInt(TextBoxYear.Text), CInt(TextBoxMonth.Text), CInt(TextBoxDay.Text)) YoubiLabel.Text = TextBoxYear.Text + "年" + TextBoxMonth.Text + "月" + TextBoxDay.Text + "日は、" + youbi + "です。" End Sub |
リスト2 Default.aspx.vb
この中から、先ほど作成した WeekClass の GetDayOfWeek 関数を呼び出して、曜日の文字列を取得しています。
(5) 実行
実行してみます。年月日を入力し、[曜日を求める] ボタンを押すと、次のように曜日が表示されます。
.gif)
図 5 実行したところ
このように、共通のルーチンを App_Code フォルダ内にクラスとして作成することができます。