### DateTo2000 (Date, Number)

Basic and Crystal syntax.

##### Arguments

- Date: accepts only valid date fields, with either 2 digit or 4 digit years.
  - a database field defined as a date field. File|Report Options should be set to Convert Date-Time fields to Date.
  - the CDate function (CDate(yyyy, MM, dd) ). A four digit year is required by this function. If two digits are entered it will assume 00xx (for example, 98 AD).
- Number: a number between 0 and 99 corresponding with the desired windowing year.

##### Returns

a date field with a four digit year

##### Action

- 2 digit years (xx):

  If the Year value is greater than the windowing number, 19 is appended before the 2 digits (19xx). If the Year value is less than or equal to the windowing number, 20 is appended (20xx).

- 4 digit years (19xx):

  If the last two digits in the Year value are greater than the windowing number, the Year is preserved as found in the date field (19xx). If the last two digits in the Year value are less than or equal to the windowing number, the first two digits are changed to 20 (20xx). If the first two digits in the year field are 20, the Year is preserved as found in the date field (20xx).

Note:

- If the year is less than or equal to 1899 and greater or equal to 100, then there will be no change to the date.
- Whether your database dates are interpreted as two digit years or 4 digit years (19xx) is dependent on the database driver you are using. The result of the formula should be the same in either case.

##### Examples

The following examples are applicable to Basic and Crystal syntax:

Here the window value is greater than the year and so it will change it to 20XX.

`DateTo2000(CDate(1993,12,12), 99)`

should return 2093/12/12

Here the window value is less than the year and so it will not change the year.

`DateTo2000(CDate(1993,12,12), 92)`

should return 1993/12/12

##### Other Examples

This is an example of a date that will not be affected by the function.

`DateTo2000(CDate(1899,12,12), 99)`

should return 1899/12/12

This is an example of a date that will not be affected by the function.

`DateTo2000(CDate(100,12,12), 99)`

should return 100/12/12

Some databases maintain the year of a date as a two digit field and so this will simulate that date field.

`DateTo2000(CDate(98,12,12), 99)`

should return 2098/12/12

`DateTo2000(CDate(98,12,12), 97)`

should return 1998/12/12

`DateTo2000(CDate(9,12,12), 10)`

should return 2009/12/12

`DateTo2000(CDate(1,12,12), 0)`

should return 1901/12/12

Seagate Software, Inc. http://www.seagatesoftware.com Please send comments to: techpubs@seagatesoftware.com