установить формат даты дд / мм / гг для валидатора диапазона - PullRequest
1 голос
/ 20 января 2011

У меня есть валидатор диапазона для проверки текстового поля на день рождения. я должен убедиться, что студент должен быть старше 21 года, чтобы зарегистрироваться у нас. Я установил формат «31/12/1993» (дд / мм / гг). но он не может запустить веб-сайт, поскольку в моей базе данных установлен этот (мм / дд / гг) формат. Как я могу решить эту проблему, не меняя формат моей базы данных? так что он может функционировать для всех.

ТНХ.

Ответы [ 2 ]

2 голосов
/ 20 января 2011

Используйте DateTime в C # и сделайте так, чтобы ADO преобразовал его в определенный тип базы данных (какой БД вы используете?) И передал в качестве параметра. НЕ в виде строки.

Кроме того, для предотвращения ошибок используйте календарь для ввода данных пользователем.

Альтернатива: четко указать требуемый формат.

Вы можете получить языки браузера пользователя:

string[] languages = Request.UserLanguages;

Затем создайте CultureInfo с этой строкой ( разделение может потребоваться ):

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

и получите соответствующий формат даты:

string datePattern = ci.DateTimeFormat.ShortDatePattern

Затем используйте шаблон для разбора ввода пользователя.

DateTime.TryParseExact(userInput, datePattern, ...
0 голосов
/ 21 января 2011

Проверить ->

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;
}
...