Operational Range for Data: System dependent
Prerequisites: For Microsoft PowerPoint 95 to execute short dates (2-digit year format) in the 2000s when saving to Microsoft PowerPoint 4.0 format, a new version of the translator, PP7TRANS.DLL version 7.07.1060, must be downloaded.
Click here to download PP7TRANS.DLL v. 7.07.1060
*Note: The below information refers to the code that is shared between Arabic Office 95 documents. Please see the individual applications for more detailed information on the product.
How the product handles dates:
Dates and times that are displayed or query-able by the user are obtained from the operating systemÆs date and time, stored as 4-digit year dates and displayed according to user settings in the operating system. Setup has no date sensitivity except in setup file removal. See below for testing implications.
For Visual Basic for Applications (VBA) and the shared Office object model:
Dates and times displayed are obtained from the operating system clock. Dates are stored using a 4-digit year format. A date may be displayed in a 2-digit format (by formatting cells in an Excel worksheet for example) but the value is stored as a 4-digit year value.
Since a common programming language (VBA 4.0) is used by the Office applications, date handling for applications can be tested by testing the VBA intrinsic commands. These intrinsic functions for date handling include:
Now ()
CDate()
CVDate()
DateValue()
Date()
Date$()
Format()
DateAdd()
DateDiff()
DatePart()
IsDate()
Day()
Month()
Weekday()
Year()
Shared Object Model Methods and Properties:
Files stored in Arabic Office format (.xls, .doc, .ppt etc.) have date properties associated with them. These properties can be manipulated using VBA methods.
Objects, Methods, Properties, and Collections possibly affected by Year 2000
Microsoft Office Language Reference
- Document Properties Object- Property type can be date e.g. msoPropertyTypeDate
CreationDate Property
LastPrintDate Property
LastSaveTime Property
PropertyTests Collection- Conditions for PropertyTests may be dates e.g. msoConditionNextMonth Add Method
Condition Property
FileSearch Object
LastModified Property
Two-digit shortcut handling:
- Advanced Find under File/Open allows the entry of 2-digit dates. Beyond Advance Find File, Office shared features support short dates as system display options only. See individual applications for additional information.
In Advanced Find, distant future dates have little meaning relative to file creation dates. Therefore, the date is assumed to fall within a range between current year minus 90 years and plus 10 years. For example, in the year 1998 the date range spans from 1908 to 2008. See individual applications for additional shortcut logic. Logic is designed to be appropriate for particular application.
- The Office Document Properties dialog stores and displays file date information consistent with the 4-digit year format set in the Windows Control Panel Regional Settings. However, the date formatting used in the Custom Document Properties dialog does not properly recognize 2-digit years past 1999 so organizations using dates in custom properties should include 4-digit years when entering them.
For VBA and the shared Office object model:
In the original configuration, 2-digit dates were assumed to belong to the current century as defined by the system clock. The logic rules that determine this are included in the oleaut32.dll shared resource file.
In any particular computer configuration, this shared resource file may have been updated. This will occur if a browser (Internet Explorer 3.x or greater), Operating System (Windows 95 OSR 2.5, Windows 98, Windows NT 4, or other Office application is installed or updated using a newer oleaut32.dll file. In this case, the Office95 applications will use 2-digit date handling logic consistent with the oleaut32.dll version.
Users should load oleaut32.dll v2.20.4118 or later to the c:\Windows\System (Windows 95) or c:\WINNT\System32 (Windows NT) directories on the affected computers. This will ensure that the date handling characteristics for 2-digit dates are consistent with the date window approach outlined above.
For additional Information please see the VBA Year 2000 Product Guide
Recommendations for working with dates:
- Set display of short dates to include 4-digit years, both in the control panel regional settings and in the default display formatting for each application.
- Use 4-digit years for displaying and entering dates.
Common date usage errors:
Data exchange between Microsoft Office applications should avoid use of plain text data. If it is necessary to use plain text data, it should be saved and manipulated with the full 4-digit year.
Text values that contain date data should be checked to ensure that they contain the full 4-digit year.
Data entered or imported into Microsoft Office applications such as Microsoft Word or Microsoft PowerPoint, which do not have data typing in the document format, will be treated as simple text. Those applications should not be used to store dates for which calculations are based (except in the instance of document properties).
Standard document properties can be consistently queried and used across Microsoft Office applications for date queries and calculations, both programmatically and through the user interface, but user-defined custom properties could generate inconsistencies.
For VBA and the shared Office object model:
User-defined functions are a prime area of date handling issues. A poorly written function may lead to problems.
Dates that are stored as strings can also be a problem if there is an error in the information. The VBA language will interpret a string as a date if by rearranging the month/day/year order a valid date can be found. For example, both 3/30/98 (March 30, 1998) and 187/3/1 (March 1, 187) are valid dates even though the month/day/year order have changed.
Testing guidelines and recommendations:
In general, avoid testing in a production environment because side effects with other products cannot be predicted. Interoperability testing across Microsoft Office products can be conducted safely.
Setup maintenance mode (for file removal), the only date sensitive portion of Microsoft Office setup, removes templates except those installed in recent months. This does not affect year 2000 compliance, but it could affect year 2000 testing because moving the system clock ahead to test could cause more templates to be removed than would be otherwise.
Area SubArea MicrosoftÆs Testing Summary
File Open/Save Dialog Document Properties: Document management features include file open/save bringing up the proper "OK to Replace?" confirmation dialog when attempting to save a file after the date/time has been changed; display of dates in results pane of dialog; sorting of dates in results pane of file open/save dialog.
Findfast Creation date of index: Create an index with the date set to the year 2000. Click Index, create index, select the index mentioned and hit Information. Ensure that the date shown says the year 2000 or 00 depending on the regional settings. The above test need to be conducted with System Calendar set to Gregorian and Hijri.
Last modified date of index: Have Findfast set to update itself every 3 minutes. Set the system date to December 31, 1999, and have it roll over to the year 2000. Verify that updating mechanism for Findfast is not affected. Set the system date to the Hijri date 09/24/1420 - equivilant to December 31, 1999, and have it roll over to the year 2000. Revert the Calendar back to Gregorian and make sure the updating mechanism of Findfast is not affected.
Creation date of file: Create a file created on January 1, 2000. Perform a search using an Office App for files created after December 30, 1999, and verify that the file was found. Set the system date to Hijri. Use the same file above. Perform a search using an Office App for files created after 09/23/1420 û equivalent to December 30, 1999. Make sure the file was found.
Findfast (cont.): Last modified date of file Create a file last modified on January 1, 2000. Perform a search using an Office App for files last modified after December 30, 1999 and verify that the file was found. Set the System Calendar to Hijri. Create a file last modified on 09/25/1420 - equivalent to January 1, 2000. Perform a search using an Office App for files last modified after 09/23/1420 û equivalent to December 30, 1999. Make sure the file was found.
Last printed date of file: Create a file last modified on January 1, 2000. Perform a search using an Office App for files last modified after December 30, 1999 and verify that the file was found. Switch the system date to Hijri. Create a file last printed on 09/25/1420 Hijri. Perform a search using an Office App for files last modified after 09/23/1420 Hijri. Verify the file was found.
Custom date property: Create a file with a custom date property of January 1, 2000. Perform a search using an Office Application for files with that property set to a date later than December 30, 1999 and verify that the file was found. Switch System Calendar to Hijri. Use the same file you created. Perform a search using an Office Application for files with that property set to a date later than 09/23/1420 Hijri.
Leap year testing: Repeat the above 5 tests using February 29 and 28, 2000, 2001, and 2004, as the dates used.
Log file: Verify that the log file shows the year 00 for any logs in the year 2000 if the regional settings are set to 2-digit format, and 2000 if the regional settings are set to 4-digit format.
Displayed dates: Verify that the displayed dates for the creation/last modified dates of the index show 00 for the year 2000 if the regional settings are set to 2-digit format, and 2000 if the regional settings are set to 4-digit format.
Setup Complete Install: Complete install is a superset of other options. Microsoft recommends performing this on a clean machine with Office version 95 installed and combinations of dates spanning the turn of 1999 to 2000.
For VBA and the shared Office object model:
Users testing applications written in VBA should be especially careful to test four main problem areas:
User-defined functions: Many applications contain user-defined functions written in VBA to deal with dates in various ways. Many of these functions store date values as strings. Manipulating these values improperly can result in date handling issues that are outside of the scope of the testing that was done at Microsoft.
The date usage issue described above can cause unwanted behavior if an error handling routine is meant to catch improperly entered dates. Since VBA rarely generates an error when a string date is used as an input, an error handling routine is unlikely to be called. In this case the proper programming technique would be to validate the data using code instead of relying on an error to signal an improper date.
Interactions between computers with varying versions of oleaut32.dll should be tested to ensure that the 2-digit assumptions built into this system file do not cause problems.
Code Example:
The following example illustrates the date window in action with various input dates. Depending on the version of the file oleaut32.dll installed, this code will produce varying results.
Sub TestDate()
Dim MyDate As Date
MyDate = "1/1/00"
Format MyDate, "mm/dd/yyyy"
MsgBox MyDate
End Sub
MyDate input Oleaut32.dll v2.1 or earlier expected behavior Oleaut32.dll v 2.2 or later expected behavior
1/1/00 1/1/1 1/1/9 1/1/2000 4/1/98 10/24/29 7/4/30 1/1/1900 1/1/1901 1/1/1909 1/1/2000 4/1/1998 10/24/1929 7/4/1930 1/1/2000 1/1/2001 1/1/2009 1/1/2000 4/1/1998 10/24/2029 7/4/1930
Note that by excluding the quotations in setting the value of MyDate, VBA automatically interprets the date in 4-digit format as it is being entered.