How do I convert to the proper Century in DateTime Format?


I am validating a text file as input in my VB.NET module.  Trouble arises with six-digit date fields (ugh, the y2k beast is still around). I want to compare a Date of Birth field (from the 20th cent) with some other fairly current date value (from the 21st cent). But say I have a very old and distinguished person who has a DOB of 11/15/28 -- that's 11/15/1928. The below code coverts his DOB to 11/15/2028.   I can't find any documentation that tells me how to convert a date value back to the last century based on a two-digit year.
My Culture is neutral (although this is an American web app).

Code looks like this:

Dim dfi As System.Globalization.DateTimeFormatInfo = New System.Globalization.DateTimeFormatInfo
        dfi.ShortDatePattern = "MMddyy"
ElemValue = obts.Elem012   'DOB
ElemDateValue = DateTime.ParseExact(ElemValue, "d", dfi)
                If ElemDateValue > TodaysDate Then
                    DoRuleViolation("Birth date > than Today is not allowed")
                End If
bigsplashAsked:
Who is Participating?
 
KarunSKConnect With a Mentor Commented:
You can set the TwoDigitYearMax property of the Calendar.

        dfi.Calendar.TwoDigitYearMax = 2027

This will cause all "yy" values that are greater than 27 to be interpreted as belonging to the previous century.

Karun.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.