1

今日の日時の時点で 18 歳から 25 歳の間であるかどうかを確認する を作成しようとしています。日付型の範囲バリデーターを使用して日付を手動で入力できることはわかっていますが、将来誰かがフォームを使用した場合、入力した日付は正しくありません。毎年バリデーターを更新し続ける必要がないようにするために使用できるコードはありますか?

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        rngValDateOfBirth.MinimumValue = DateTime.Now.AddYears(-25).ToString();
        rngValDateOfBirth.MaximumValue = DateTime.Now.AddYears(-18).ToString();
    }

 Date Of Birth <asp:TextBox ID="txtCdob" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rfvCdob" runat="server" ErrorMessage="You must enter a date of  birth" Text="*" ControlToValidate="txtCDOB" Display="Dynamic">*</asp:RequiredFieldValidator>
        <asp:RangeValidator ID="rngValDateOfBirth" runat="server" ErrorMessage="must be between 18 and 25" ControlToValidate="txtCdob" Type="Date"></asp:RangeValidator>
4

3 に答える 3

4

コードビハインドでMinimum/Maximumプロパティを設定できます。

テストされていませんが、次のようなものが機能する可能性があります。

MyDateRangeValidator.MinimumValue = DateTime.Now.AddYears(-25).ToString(/* format */);
MyDateRangeValidator.MaximumValue = DateTime.Now.AddYears(-18).ToString(/* format */);
于 2013-10-16T20:32:44.367 に答える
0
int age = DateTime.Now.Year - userBirthYear;
if(age > 18 && age < 25)
{

}

DateTime.Now は、呼び出されたときに正しい時刻を取得します

于 2013-10-16T20:34:12.293 に答える
0

DateTime.Now現在の日付と時刻を取得するために使用します (またはDateTime.UtcNowタイムゾーンの問題を回避するために)。これがあれば、誰かの年齢を生年月日から動的に計算できるため、定期的にコードを更新する必要はありません。

http://msdn.microsoft.com/en-us/library/system.datetime.aspx

于 2013-10-16T20:32:54.493 に答える