We don't need to worry about that, we're Americans!
(I am kidding. Really).
>Try this with SET DATE GERMAN :-)
>
>
>>Thanks Dorris, I went with something similar:
>>
>>
>> lcCentury = SET('CENTURY')
>> lxThisValue = IIF(TYPE('THIS.Value')='T', ;
>> TTOD(THIS.Value), THIS.Value)
>>
>> SET CENTURY ON
>> lxDateValue = IIF(TYPE('lxThisValue')='T', GETaDATE(), GETaDATE("D"))
>> SET CENTURY &lcCentury
>>
>>
>> *--Check for future date
>> IF lxThisValue > lxDateValue
>> ldStartValue = this.value
>> TRY
>> IF TYPE('this.value') = 'T'
>> THIS.value = DTOT(CTOD(STR(MONTH(this.value))+'/'+STR(DAY(this.value))+'/'+STR(YEAR(this.value)-100)))
>> ELSE
>> THIS.value = CTOD(STR(MONTH(this.value))+'/'+STR(DAY(this.value))+'/'+STR(YEAR(this.value)-100))
>> ENDIF
>> CATCH
>> THIS.value = ldStartValue
>> RETURN .F.
>> ENDTRY
>> IF TYPE("gluse2DigYear")="L" AND gluse2DigYear
>> SET CENTURY OFF
>> ENDIF
>> RETURN .T.
>> ENDIF
>>
>>
>>>If Century is set on, don't they have to enter a 4 digit year?
>>>
>>>otherwise, are you looking for something like:
>>>
>>>if Year(dtofBirth) > Year(date())
>>> dtofBirth = ctod(alltrim(str(Month(dtofBirth))) + ;
>>> alltrim(str(Day(dtofBirth))) + ;
>>> alltrim(str(Year(dtofBirth)-100)))
>>>endif
>>>
>>>>A user can enter 2 or 4 digit value for the year section in a datetime field: (i.e. 01/01/01 or 01/01/2001)
>>>>
>>>>1. If the year is in the future, invalid - set to same date in previous century (i.e. 08 entered, make it 1908, or 2008 entered, make it 1908).
>>>>2. If the year is between the current century and the current year (2000/00 to 2007/07), assume this century.
>>>>3. If the year is greater than the current year, set it to the same date in the previous century.
>>>>
>>>>For some reason I am not getting this today. It should be so very very simple...