To Millenium Bug info.............................. to Index

MSYr2000

Year 2000 Issue - Frequently Asked Questions

September 1997

Q 1: What is Microsoft’s overall position on the Year 2000 issue?
A 1: Microsoft's products have been designed for use in the year 2000 and well beyond. Microsoft cares deeply about its customers and feels a responsibility with the industry to raise the awareness about this issue. Because of the important role that data plays in our customers business, we strongly recommend that companies and governments take a complete look at their information systems to ensure they transition smoothly into the next century.

To assist our customers with potential technology issues in the transition to the Year 2000, Microsoft has given our customers the ability to:

  • Enter and store 4-digit dates well past 1999
  • Enter 2-digit short cuts for a year but actually have all 4 digits of the year stored
  • Override a 2-digit short cut by entering all 4 digits of a year
  • Handle calculations of properly stored dates that span the 1900's and the 2000's
  • Recognize the year 2000 as a leap year
  • Avoid applying any special business meaning to a date

While minor compared with the issues facing legacy systems, a few of Microsoft's products have had year 2000-related issues. These issues and solutions are highlighted in answer 6 below and the Microsoft KnowledgeBase. In addition, users of personal computers may encounter year 2000 problems including problems arising from the computer BIOS (described in answer 14 below). It is important that IT organizations look at their information systems end-to-end for potential Year 2000 problems. This is particularly appropriate since most organizations use technology from multiple vendors.

To assure the most reliable data and to reduce the potential for errors or unexpected results, Microsoft also recommends that our customers consider taking the following steps:

  • Update PC-based applications with date fields that don't accept 2000 and beyond
  • Set client computers to display all 4 digits of a year as the default so that users are aware of possible errors as dates are entered
  • Check the impact of BIOS problems on older systems
  • Convert all years stored as 2 digits to 4 digits and confirming the accuracy of the conversion
  • Establish a consistent date format using all 4 digits of a year for exchanging dates between internal or external systems
  • Place business logic in key parts of a system to watch for data entry errors or bad data sources
  • Train help desk personnel for the year 2000 transition
  • Upgrade systems to take advantage of new ease of use functions for dates into the next century
  • Re-host systems with Year 2000 problems to provide a flexible foundation for the future

Microsoft looks forward to working with you as we transition to the 21st century.

Q 2: How long has Microsoft been thinking about this Year 2000 issue?
A 2: From day one, with the initial work on the MS-DOS operating system, Microsoft incorporated the capability to handle dates well into the next century. Quality and testing practices regarding the Year 2000 transition continue today. And we have included recommendations for best practices into our public white paper on this topic(
http://www.microsoft.com/cio/articles/year2000.htm ).

Q 3: What is the difference of the Year 2000 impact between Microsoft’s products and mainframes?
A 3: Many mainframe applications were deployed that only stored 2 digits to represent a year. This was typically done for efficiency reasons. If these systems are not updated to handle 4-digit dates, serious consequences are possible (e.g. inventory systems that make EDI orders for stock that is not really obsolete, or inaccurate mortgage, age, or other calculations).

By contrast, all of Microsoft’s operating systems, including MS-DOS, were designed with the ability to handle 4-digit dates well into the next century. Users can enter 2-digit shortcuts that are then stored as four digit dates by Microsoft products based on documented assumptions. Since there is no industry-wide standard on how to interpret 2-digit shortcuts, some PC applications in use today may interpret a 2-digit date differently than a user needs, and that user will need to type in all four digits (e.g. "2000" instead of "00") in order to ensure accurate data. Users must of course take responsibility for the accuracy of the data that has been entered under either the 2-digit or 4-digit method, but Microsoft products give users the ability to properly enter and store dates into the next century. Relative to the severity and expense of the mainframe problem, this is a minor issue.

Q 4: Can I use 2-digit short cuts but have my PC display the 4-digit year as a default setting?
A 4: Yes. You can continue to use 2-digit short cuts and have the year be displayed in a 4-digit (YYYY) format, by going to the Control Panel and selecting Regional Settings, the Date tab, and then changing the "Short date style:" to display all four digits of a year. Then all applications will display dates in the 4-digit format as a default.

This simple step will enable you to enter data using 2-digit shortcuts, and let you immediately see the 4-digit date the computer is storing. Thus, if you were unfamiliar with the shortcut in Excel 95 and entered "18" for "1918," this default setting would immediately show that you had actually entered "2018," and allow you to correct your data by re-entering the year in 4-digit form — "1918."

Q 5: What is Microsoft doing to raise the awareness of the Year 2000 issue?
A 5: Microsoft is trying, along with Gartner Group and others in the analyst community, as well as IBM (
http://www.software.ibm.com/year2000/resource.html and http://www.s390.hosting.ibm.com/ ) and others in the computer industry, to raise the awareness of this issue so that all organizations can address this before it becomes a bigger problem. Microsoft has provided detailed written testimony to the United States Congress outlining the issues and Microsoft’s position. Microsoft’s position paper, answers to frequently asked questions (this document), and congressional testimony are published on its Web site (see URLs below). Included in Microsoft’s position paper on the Year 2000 issue is information intended to raise the awareness of this issue and provide suggestions that help developers create applications with safe dates.

Microsoft Web sites:

Other Web sites with Year 2000 information include:

Q 6: Do Microsoft’s products have year 2000-related bugs?
A 6: Yes, a few of Microsoft’s products have had year 2000-related bugs which are documented in the Microsoft Technical Support Knowledge Base. This Knowledge Base is available on CD as well as on the Microsoft Web site (
http://www.microsoft.com/kb/ ). In addition to information about bugs, the Knowledge Base also contains advice related to year 2000 issues. The Visual Basic and Visual FoxPro articles, for example, provide Y2K advice for software developers. You can see all year 2000 information in the Knowledge Base by searching on the phrase "year 2000." Table 1 below identifies those products with year 2000-related articles.

Product Name

Knowledge Base Article(s)

MS Access all versions

Q162745, Q155669, Q132067, Q92816, Q161345

MS Excel all versions

Q106339, Q118923, Q164406, Q73673

Exchange Server 4.0

Q152874, Q153655, Q152858, Q158263, Q158699

MS Project 4.0

Q161089, Q125305, Q160677

MS Works 1.x and 2.0

Q50679, Q100822

Visual Basic

Q162718

Visual C++ 1.5-4.2

Q110719

Visual FoxPro

Q162388, Q156009, Q169471, Q148873

Windows 3.x

Q85557

Windows for Workgroups

Q85557

Windows 95

Q85557

Windows NT-J 3.51

Q163915

Word 5.0 (for MS-DOS)

Q68181

Word 6

Q171286

Table 1. Microsoft products with year 2000-related issues and the associated knowledge base articles.

Q 7: What are the future year limits for Microsoft’s products?
A 7: Many of Microsoft’s products do not actually store dates. Instead, they rely on the operating system, and sometimes databases, for storing and manipulating dates. Table 2 below contains a comprehensive list of all Microsoft products that have the capacity to store and manipulate dates and the year limit for dates entered using 4-digit years. Any Microsoft product not listed in Table 2 relies on date functionality supplied by the operating system or databases.

Microsoft Products that Store or Manipulate Dates

Year Limit

Microsoft Access

9999

Microsoft Excel 95

2078

Microsoft Excel 97

9999

Microsoft Project 95

2049

Microsoft SQL Server™

9999

MS-DOS® file system (FAT16)

2099

Outlook Calendar

4500

Schedule+

2999

Visual C++®(4.x) runtime library

2036

Visual FoxPro™

9999

Windows 3.x file system (FAT16)

2099

Windows 95 file system (FAT16)

2099

Windows 95 file system (FAT32)

2108

Windows 95 runtime library (WIN32)

2099

Windows for Workgroups (FAT16)

2108

Windows NT file system (FAT16)

2108

Windows NT file system (NTFS)

29,601

Windows NT runtime library (WIN32)

2099

WordBasic date commands in Microsoft Word

4095

Table 2. The last year handled by all Microsoft products that store dates.

Q 8: What are the 2-digit short cut details for Microsoft database products?
A 8: Every Microsoft database product including Microsoft Access, Visual FoxPro, and Microsoft SQL Server stores years in 4-digit form. Microsoft provides users with the ability to enter 2-digit short cuts for year data (i.e., "96" instead of "1996"). When a user types in a 2-digit year, Microsoft’s programs actually store the complete 4-digit year — unlike many older mainframe programs, which store just the 2-digit form. There is no standard way in the industry to interpret 2-digit year short cuts and as a result, errors can occur when dates are entered and displayed only using 2-digits. Of course, users of Microsoft products can always type in all 4 digits of a year to clearly identify the date they want to store in order to reduce possible data entry errors.

Microsoft Access 97 interprets manual year input from "00" to "29" as short cuts for the years "2000" to "2029." Access 97 converts all 2-digit years within imported text files to 1900-based years. It is recommended that all legacy data sources be updated to contain 4-digit years to avoid incorrect conversions. Microsoft Access 95, and earlier versions, interpret manual year input from "00" to "29" to be short cuts for "1900" to "1929."

Microsoft Excel versions 4, 5, and 7 all interpret "00" to "19" as short cuts for "2000" to "2019." Microsoft Excel 97 interprets 2-digit years from "00" to "29" as "2000" to "2029" and the short cut "30" will resolve to "1930."

The 32-bit Windows operating systems, Windows 95 and Windows NT, contain a software library that, among other things, provides functions that can convert dates with 2-digit years to 4-digit years. By making use of this facility, called the "OLE Automation Library" (file name OLEAUT32.DLL), in new versions of our products we standardize on a common way for doing this conversion, which can then easily be modified by updating the library in question. The rules used by this library for doing the conversion, as well as the other Microsoft products that convert from a 2-digit to a 4-digit year, are shown in Table 3 below. An early version of the OLE Automation Library on Windows 95 converted all 2-digit years to the current century setting of the computer.

Product Name

20th Century

21st Century

OLE Automation Library v2.10 and earlier (Windows NT 3.51 prior to service pack 4)

1/1/00 — 12/31/99

Enter 4-digit year

OLE Automation Library v2.20 (Windows NT 3.51 service pack 4 and later, Windows NT 4, Windows 95)

1/1/30 — 12/31/99

1/1/00 — 12/31/29 or enter 4-digit year

Microsoft Access 95 and earlier

1/1/00 — 12/31/99

Enter 4-digit year

Microsoft Access 97

Uses OLE Automation Library

Microsoft Excel versions 4, 5, and 7

1/1/20 — 12/31/99

1/1/00 — 12/31/19 or enter 4-digit year

Microsoft Excel 97

1/1/30 — 12/31/99

1/1/00 — 12/31/29 or enter 4-digit year

Microsoft Works for Windows, versions 2.0x, 3.0, 3.0a, and 3.0b

1/1/00 — 12/31/99

Enter 4-digit year

Visual Basic 3.0 and earlier (VBRUN300.DLL)

Uses current century

Visual Basic 4.0 (16-bit) [DateSerial date function uses VBRUN400.DLL; all other functions use OLE Automation Libraries]

Uses current century

Visual Basic 4.0 (32-bit) DateSerial function uses VBRUN400.DLL

Uses current century

Visual Basic 4.0 and later (32-bit) except DateSerial function

Uses OLE Automation Library

Visual FoxPro versions prior to 5.0

1/1/00 — 12/31/99

Enter 4-digit year

Visual FoxPro 5.0 and later

Determine by the "SET CENTURY TO...ROLLOVER..."

MS-DOS® DATE command

1/1/80 — 12/31/99

Enter 4-digit year

Table 3. The rules for converting 2-digit years to 4-digit years in Microsoft products.

Q 9: What is the full range of dates Excel for Windows 95 (v7.0a) can handle?
A 9: Excel 95 is ready for the year 2000. Month and day order may be interchanged internationally. Here is the full range of dates it handles:

Earliest date not recognized even in 4-digit long/explicit "YYYY" format: 12/31/1899

First recognized date in 4-digit year format (1/1/1900): January 1, 1900

First recognized 2-digit short/assumed "YY" format (1/1/00): January 1, 2000

Last recognized 2-digit year format (12/31/19): December 31, 2019

Last recognized date in 4-digit year format (12/31/2078): December 31, 2078

First date not recognized in the next century: 1/1/2079

Note that Excel versions 5 and 4 also work this way!

Q 10: What is the full range of dates Microsoft Excel 97 can handle?
A 10: Excel 97 is also ready for the year 2000. Month and day order may be interchanged internationally. Here is the full range of dates it handles:

Earliest date not recognized even in 4-digit long/explicit "YYYY" format: 12/31/1899

First recognized date in 4-digit year format (1/1/1900): January 1, 1900

First recognized 2-digit short/assumed "YY" format (1/1/00): January 1, 2000

Last recognized 2-digit year format (12/31/29): December 31, 2029

Last recognized date in 4-digit year format (12/31/9999): December 31, 9999

First date not recognized in the future: 1/1/10,000

Q 11: Will Microsoft warrant that its products are year 2000 ready?
A 11: The real Year 2000 readiness issues are more about testing, good practices, and user education than product warranty. We will continue to provide detailed information to customers about year 2000 readiness, but contractual warranties specific to Year 2000 readiness are not appropriate given the true nature of Year 2000 issues and the simple fact that a single technology provider, even one as well prepared for the year 2000 as Microsoft, cannot solve all issues related to the transition to the Year 2000. Warranties for Microsoft’s products are set forth in the end user license agreements (EULAs) that accompany the products and we recommend that customers read those warranties to understand their rights. The information we are disseminating about year 2000 readiness does not constitute an extension of any warranty for Microsoft products. Microsoft is providing this information to assist our customers in evaluating and correcting potential issues for using dates into the next century.

Q 12: If Microsoft products are Year 2000 ready, why does Microsoft recommend that PC software be upgraded to versions from 1997 or later?
A 12: This is just a recommendation. There is no Microsoft software that must be upgraded. The reason for the suggestion is that Microsoft continues to add new functionality with each product release that may include improving year 2000 ease of use. One example of this is with 2-digit short cuts handling dates further into the next century. Customers should evaluate upgrading Microsoft products based on the overall business benefit of all the new features like new Internet capabilities.

Q 13: Does Microsoft recommend that I test out my current computer by resetting the date to just minutes before the year 2000 to see what happens?
A 13: Microsoft recommends that you only do this on a test system (i.e., not on a production system). There may be a number of side effects that could cause problems even if your system rolls over correctly to the year 2000. For example, if you have any software (leased or demo) that has time limits, this test could trigger the software to expire and be permanently disabled. There could be other problems like dated security certificates becoming invalid, your calendar ignoring or removing important appointments, or email messages being filed incorrectly.

Q 14: I’ve heard that the BIOS included in some PCs doesn’t switch over to the year 2000 properly causing the operating system date to be reset to 1980. Can you comment on that?
A 14: Some PCs do have a problem that resets the system date to 1980 when the computer reaches the year 2000. This problem is created by flaws in the computer hardware and in low-level BIOS software provided by other vendors.

A brief definition for BIOS (Basic Input Output System): Software in a computer chip (also called firmware) used to manage the low-level input and output functions of personal computer hardware. The operating system is layered on top of the BIOS.

Here are ways to address this issue:

  1. Manually set the date once when we reach January 2000: In the event that the date is reset to 1980, the easiest approach is to set the correct date by hand the first time the system is used on or after January 1, 2000. If using a Microsoft operating system, one can manually reset the PC to the correct date using the MS-DOS "date" command (typing in all four digits of the year 2000) or the "Date/Time" service in the Control Panel on Windows-based systems. The level of effort to set the date once on a personal computer is less than changing your clocks every daylight savings time.
  2. Upgrade to Windows NT or "Memphis": The Windows NT operating system (Version 3.51 with Service Pack 5, Version 4.0, and later releases) detects and fixes this problem automatically. The next release of Windows 95, code-named "Memphis," will also detect and fix this problem automatically. There is a small possibility you have a BIOS that cannot be reset (see number 4).
  3. Load a utility that corrects the BIOS error: There is a software utility available from Tom Becker ( http://www.rightime.com/ ) that can correct the BIOS date/time if this embedded software from the hardware vendor is reset. While the software is free to individuals
  4. , contact Tom for the cost to organizations. For individuals, Microsoft believes the effort to install a utility like this is generally more work than resetting the date by hand when we reach the year 2000. A company’s MIS organization may find it worthwhile to use a product like Systems Management Server to automate the delivery of this utility to all systems that may be effected.
  5. Get new BIOS software from your computer supplier: Microsoft is aware of BIOS that only work through 1999 and either cannot be reset at all to 1/1/2000 or need to be reset every time the system is turned on. Given the source of this BIOS problem, the large majority of these systems are believed to be located in Asia. Contact your BIOS or hardware vendor for assistance with this problem.
  6. Plan for after the year 2000: A company's MIS organization may find it useful to set up processes that monitor data feeds to mission-critical databases which would catch potentially bad dates before they cause operational problems. A product like Systems Management Server could be used to reset a computer with the correct date as part of this process.

While the BIOS issue isn't a problem created by Microsoft, it is an example of one way we are trying to make this transition as smooth as possible by providing information and suggested solutions for our customers.

Q 15: I’ve heard that the MS-DOS "date" command returns the error message "Invalid date" when you type in "01-01-00" for January 1st, 2000. Can you comment on that?
A 15: To set a date past the year 1999, use the full 4-digit format (e.g. 01-01-2000). The "date" command in MS-DOS uses the shorter 2-digit year format for dates between 1980 and 1999 but requires the 4-digit format when entering dates after 1999. This date command is available in the MS-DOS window in Windows 3.x and Windows 95 as well.

Q 16: What is expected to be Microsoft’s biggest problem when we do reach the year 2000?
A 16: The biggest issue may be getting end users to not "shoot the messenger." Many PCs are being used as windows into mainframe-based applications today. It is highly likely that not all mainframe programs will function properly when we reach the year 2000. But the end user will see the information coming from their PC and may believe it to be a Microsoft issue. We need to build awareness of this issue so people can quickly identify the real problems and take appropriate and cost effective steps to solve the problem. In addition, it is important for us to make our customers aware of the options our products provide to improve the reliability of data by displaying 4-digit dates.

Q 17: Can PC-based applications have problems when we reach the year 2000?
A 17: Yes. While Microsoft does provide the tools for others to build solutions, we do not provide the vertical applications (e.g. payroll, accounting, Medicare, social security, tax systems). Software developers can create their own software to collect, store, and manipulate dates. If they have not accounted for the year 2000, they may have problems. Microsoft strongly encourages software developers to use the date functions supplied by the operating system, software development tool, or database to avoid this problem. Microsoft also recommends that year 2000 testing be included in the software development process.

Q 18: What is Microsoft doing internally to be ready for the Year 2000?
A 18: Microsoft has an intranet Web site where overall education on this issue is provided along with a list of best practices organized for three target audiences: program managers, developers, and testers.

The difficulties outlined for developers include:

  • There is no standard way in the industry to interpret 2-digit date short cuts.
  • Rules for Leap Year: (1) Year Divisible by 4 is a leap year, but (2) year divisible by 100 is not a leap year, but (3) year divisible by 400 is a leap year. Software coded without rule (3) will be incorrect for the year 2000. Software with incorrect coding of rule (3) might make February 2000 have 27 days or even 30 days.
  • Converting between a serialized date (e.g. number of days since 1980) and day of month or day of week requires application of Leap Year rule.

Suggestions for Microsoft’s developers throughout the design, code, and code review process (short list):

  • Use system-provided date formats and routines, unless the platform is known to have problems.
  • Are there special Year values (00 or 99) or Date Values (9/9/99) coded into your program?
  • Ensure proper display of 2-digit years between 00 and 09, between 10 and 19, etc.
  • Do you have code to compute day-of-week? In how many places? 2000 is a leap year.
  • What are the limits to the date formats you use? Is your format signed? Are dates "positive" or "negative"? On what date does the top bit in your date format become set?
  • Do you use any file formats with 2-digit date fields?
  • Do you use the year as part of a hashing, indexing, or sorting key?
  • Do you use Asserts to verify assumptions in your date / time calculations?
  • Do you have code to translate between date formats? In how many places?
  • Determine the special issues for your product (long list).

Suggestions for the testing process (short list):

  • When testing a platform verify its handling of BIOS errors related to the year 2000. Verify year display in each decade of 2000-2099. If it knows time zones, verify operation when UTC (represents Coordinated Universal Time in English; see details on the NIST web page at ( http://www.bldrdoc.gov/timefreq/ ) is a different century than local time (both + and - from UTC).
  • Test an application with 2-digit date entry and 2-digit date display both before 2000 and after. And when the entry / display is a date in the other century, both before and after that.
  • Verify entry / display of 4-digit dates.
  • Verify sorting of dates where some are before 2000, some after.
  • Verify day-of-week before 2/29/00, on 2/29, and after (on 2/1/01).
  • Does your program do any "year ahead" calculations? Testing in 1999 may be critical.
  • What happens if you are networked to a machine with the wrong year? Or different time zone?
  • Can you backup before 2000 and restore afterwards?
  • Do you ever select a date range? Can the range cross 2000?
  • Did any previous version of the program store data in a file format where 00 or 99 meant something special (e.g. never expire?)
  • Find the limits to the date values the program accepts.
  • Determine the special test issues for your product (long list).

Q 19: Is the year 2000 a leap year?
A 19: The year 2000 will be a leap year. Century years, such as 1900 and 2000, are leap years if they are evenly divisible by 400. The basic rules for calculating leap years, which Microsoft incorporates into its software development processes, are:

1) Years divisible by 4 are leap years, but

2) Years divisible by 100 are not leap years, but

3) Years divisible by 400 are leap years.

The need for leap years is due to the fact that the actual length of a year is 365.242 days, not 365 days, as is commonly stated. To account for this, an extra day is added as February 29th on years that are evenly divisible by 4 (like 1992, for example). Since the year is slightly less than 365.25 days long, adding an extra day every four years results in about three extra days being added over a 400-year period. For this reason, one out of every four century years also needs to be a leap year.

Q 20: Why doesn’t Microsoft adopt the NIST or other standard date formats in all of its products?
A 20: Microsoft’s Windows-based operating systems do properly handle the U.S. NIST proposed standard date format "YYYYMMDD" as well the other international date standards. To set the NIST format as the default, from the Control Panel double click the Regional Settings icon, then select the Date tab and enter "YYYY/MM/DD" in the "Short date style:" field. Then all applications running on the system, like Exchange or Windows Explorer, will use the NIST format.

Different standard bodies exist which have each specified date formats. Microsoft’s products follow the standards relevant to their product area (e.g. the Microsoft Visual C++ development system follows the ANSI standard date format for the C++ language). Microsoft’s products were also designed to be flexible and support the standard date formats of the 70+ countries in which we do business.

Updated October, 1997
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.