Re: How to Validate a Date Filed.

From: Richard Petheram (rjp_at_adlz.co.uk)
Date: 05/20/04


Date: Thu, 20 May 2004 21:50:16 +0100

Here yer go ... as recommended by Cowboy, and cut'n'paste directly from an
app I'm writing.

The first test is for an ordinary date, explicitly coded to en-GB 'cos
browsers don't appear to return the right nationality and this is for UK.
The second test is because the users are occasionally lazy about 4 digit
years, the third test allows for year only entry - a requirement of the app
I'm writing, and the fourth test is just getting fancy; nobody will ever
type the word "today" into a text box. To parse other date formats simply
add more tests.

Cheers

Richard
_____________________________________________
Dr. Richard Petheram
AdlZ Ltd.
E-mail: richard_at_adlz.co.uk
_____________Web: www.adlz.co.uk ____________

[ CODE FOLLOWS ]
Public Shared Function ParseDate(ByVal pString As String, Optional ByRef
IsValid As Boolean = True) As DateTime
    Dim lDTF As DateTimeFormatInfo =
CultureInfo.CreateSpecificCulture("en-GB").DateTimeFormat
    Dim lResult As DateTime

    Try
        lResult = DateTime.Parse(pString, lDTF).Date
        IsValid = True
        Return lResult
    Catch ex As Exception
    End Try

    Try
        lResult = DateTime.ParseExact(pString, "dd/MM/yy", lDTF).Date
        IsValid = True
        Return lResult
    Catch ex As Exception
    End Try

    Try
        lResult = DateTime.ParseExact(pString, "yyyy", lDTF).Date
        IsValid = True
        Return lResult
    Catch ex As Exception
    End Try

    If pString.Trim.ToLower = "today" Then
        lResult = DateTime.Today.Date
        IsValid = True
        Return lResult
    End If

    IsValid = False
    Return Nothing
End Function
[ END OF CODE ]
"Cowboy" <NoSpamMgbworld@comcast.netNoSpamM> wrote in message
news:%23syTBZqPEHA.1476@TK2MSFTNGP10.phx.gbl...
> You can validate a date using Regular Expressions. It is, by far the
easiest
> way with validation controls. To validate back end, you can also attempt
to
> cast into a DateTime structure and see if it blows up. While this may seem
a
> bit strange, the regex to correctly test for months of different lengths
> would be rather large. The DateTime object will guarantee 2/29/2005 does
not
> slip in.
>
> As far as date formatting, this is most easily changed using CultureInfo
> objects and setting culture to a country that uses the date format you
wish
> to use. The other option is to rip the date apart, by parts, and reorder.
>
> --
> Gregory A. Beamer
> MVP; MCP: +I, SE, SD, DBA
>
> ************************************************
> Think Outside the Box!
> ************************************************
> "RSB" <rsbamra@hotmail.com> wrote in message
> news:YK7rc.1997$BA3.392@news.cpqcorp.net...
> > Hi Every one
> >
> > Need some help to Validate the Date i have in the Form.
> > ALso how to Convert the Date Data i read from table to yyyy/MMM/dd
format.
> >
> > Thanks
> >
> > RSB
> >
> >
>
>