2011-01-20 11 views
1

用のDATEFORMAT DD/MM/YYを設定します。私は、学生が私たちに登録するには21歳以上でなければなりません。私は "31/12/1993"形式(dd/mm/yy)を設定します。 私のデータベースがこの(mm/dd/yy)形式に設定されているため、ウェブサイトを実行できません。私はどのように私のデータベース形式を変更せずにこれを解決することができますか?それは誰にとっても機能することができます。は、私は誕生日のためのテキストボックスを検証する範囲バリデータを持っている範囲バリデータ

thx。

答えて

2

C#でDateTimeを使用し、ADOにデータベース固有の型(どのデータベースを使用していますか?)を変換し、パラメータとして渡します。文字列ではありません。エラーを防止することも

、ユーザ入力のためのカレンダーを使用しています。

オルタナティブ:明確に必要な形式を示しています。対応DATEFORMAT

CultureInfo ci = new CultureInfo(languages[0].Split(";")[0]); 

とget:

string datePattern = ci.DateTimeFormat.ShortDatePattern 

string[] languages = Request.UserLanguages; 

はその後、この文字列(the split might be needed)とのCultureInfoを作成します。あなたは、ユーザーのブラウザの言語を取得することができ

次に、パターンを使用してユーザー入力を解析します。

DateTime.TryParseExact(userInput, datePattern, ... 
+0

私はカレンダーを使用することはできません。その誕生日です。私はVisual Studioを使っています。私は最大と最小のために置く日付の形式は、データベースに従わなければならない。私の友人が異なる日付形式を持っているので、データベース形式に従う必要がないように設定するにはどうすればよいですか? – user576785

+0

私は私の答えに追加しました。これはあなたが探しているものですか? –

0

それをチェックアウト - >

string sBDate = "31/12/1993"; 
DateTime datBirthDay = ValidateDate(sBDate); 

DateTime datToday = new DateTime(); 
datToday = DateTime.Today.Date; 

if (datToday.Year - datBirthDay.Year < 21) 
{ 
    //Error message:-You must be above 21. 
} 

public DateTime ValidateDate(string strInputDate) 
{ 
    DateTime datReturnDate = new DateTime(); 
    DateTime datTempDate = new DateTime(); 

    datTempDate = DateTime.Parse("1/1/1900"); 
    string[] strArrDateFormat = { 
    "dd.MM.yy", 
    "dd.MM.yyyy", 
    "dd-MM-yy", 
    "dd-MM-yyyy", 
    "dd/MM/yy", 
    "dd/MM/yyyy", 
    "dd MMM yy", 
    "MMM yy", 
    "MMM yyyy", 
    "MMM-yy", 
    "MMM-yyyy", 
    "MMMM yyyy", 
    "d MMMM yyyy", 
    "dd MMMM yyyy", 
    "MMMM yy", 
    "d/M/yy" 
}; 

    if (DateTime.TryParseExact(strInputDate, strArrDateFormat, null, DateTimeStyles.None, out datReturnDate)) 
    { 
     //Format matched 
    } 
    else 
    { 
     datReturnDate = datTempDate; 
    } 

    return datReturnDate; 
} 
関連する問題