Microsoft Year 2000 Readiness Disclosure
and Resource Center |
|
|
|
Ctime |
|
The information
below pertains to Ctime and the impact that it has on productsÆ
ability to work into the 21st century. Ctime is a function of the C
programming language that is used to calculate time. There is a good
deal of attention being paid to this topic as organizations are
looking to deal with the Year 2000 issue. The reason this issue
becomes germane to the Year 2000 is because its use places a finite
time limit on the application that is making use of it.
The ANSI time functions as well as the MFC CTime depend on an
internal variable time_t to store time values. The variable time_t
is a 32-bit long int that can hold values up to 2147483647 before it
overflows. The calculated time is based on the time_t variable,
which is used as an offset (in seconds) from January 1, 1970. The
maximum number of seconds that can be stored in the time_t value is
2147483647û-a little over 68 years. This means that Ctime can only
be used to calculate times up to the year 2038 (1970 + 68 years).
offset from January 1, 1970 typedef long time_t; /* time value
*/ Integer Limits LONG MAX 2147483647 3600 sec/hr 86400
sec/day 31536000 sec/year 2147483647 / 31536000 =
68.09625973491 (ignoring leap years for this rough calculation)
Here is another independent calculation taken from another e-mail
thread discussing Year 2000 issues:
The MFC documentation for CTime::CTime states that the valid
range for the nYear parameter is 1970 to 2038 (actual range is
midnight, January 1, 1970, to January 18, 19:14:07, 2038). These
limits are based on the underlying time_t value that mktime creates
from the struct tm. Most, if not all, ANSI C systems use 1970 as the
reference date and overflow in 2038 (time_t is a long int that holds
the number of seconds since the reference date).
There has been a considerable amount of inconsistent information
about this topic over the past few months. For that reason,
Microsoft chose to place a 35-year timeframe for our Year 2000
statement of compliance. In this way, we address concerns on this
issue expressed to us by the greatest number of customers.
ALL COMMUNICATIONS OR CONVEYANCES OF INFORMATION TO YOU
CONCERNING MICROSOFT AND THE YEAR 2000, INCLUDING BUT NOT LIMITED TO
THIS DOCUMENT OR ANY OTHER PAST, PRESENT OR FUTURE INFORMATION
REGARDING YEAR 2000 TESTING, ASSESSMENTS, READINESS, TIME TABLES,
OBJECTIVES, OR OTHER (COLLECTIVELY THE "MICROSOFT YEAR 2000
STATEMENT"), ARE PROVIDED AS A "YEAR 2000 READINESS
DISCLOSURE" (AS DEFINED BY THE YEAR 2000 INFORMATION AND
READINESS DISCLOSURE ACT) AND CAN BE FOUND AT MICROSOFTÆS YEAR 2000
WEBSITE LOCATED AT http://www.microsoft.com/year2000/
(the "Y2K WEBSITE"). EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED
PURSUANT TO THE TERMS HEREOF, THE TERMS OF THE Y2K WEBSITE, AND THE
YEAR 2000 INFORMATION AND READINESS DISCLOSURE ACT FOR THE SOLE
PURPOSE OF ASSISTING THE PLANNING FOR THE TRANSITION TO THE YEAR
2000. EACH MICROSOFT YEAR 2000 STATEMENT CONTAINS INFORMATION
CURRENTLY AVAILABLE AND IS UPDATED REGULARLY AND SUBJECT TO CHANGE.
MICROSOFT THEREFORE RECOMMENDS THAT YOU CHECK THE Y2K WEBSITE
REGULARLY FOR ANY CHANGES TO ANY MICROSOFT YEAR 2000 STATEMENT. EACH MICROSOFT YEAR 2000 STATEMENT IS PROVIDED "AS IS"
WITHOUT WARRANTY OF ANY KIND. CONSEQUENTLY, MICROSOFT DISCLAIMS ALL
WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. MOREOVER,
MICROSOFT DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE
USE OR THE RESULTS OF THE USE OF ANY MICROSOFT YEAR 2000 STATEMENT
IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. NO
ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY MICROSOFT OR ITS
AUTHORIZED REPRESENTATIVES SHALL CREATE A WARRANTY OR IN ANY WAY
DECREASE THE SCOPE OF THIS WARRANTY DISCLAIMER. IN NO
EVENT SHALL MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES
WHATSOEVER REGARDING ANY MICROSOFT YEAR 2000 STATEMENT INCLUDING
DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS
PROFITS, PUNITIVE OR SPECIAL DAMAGES, EVEN IF MICROSOFT OR ITS
SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY
FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE FOREGOING LIMITATION
MAY NOT APPLY TO YOU. THE INFORMATION CONTAINED IN EACH MICROSOFT
YEAR 2000 STATEMENT IS FOUND AT THE Y2K WEBSITE AND IS INTENDED TO
BE READ IN CONJUNCTION WITH OTHER INFORMATION LOCATED AT THE Y2K
WEBSITE, INCLUDING BUT NOT LIMITED TO MICROSOFTÆS YEAR 2000
COMPLIANCE STATEMENT, THE DESCRIPTION OF THE CATEGORIES OF
COMPLIANCE INTO WHICH MICROSOFT HAS CLASSIFIED ITS PRODUCTS IN ITS
YEAR 2000 PRODUCT GUIDE, AND THE MICROSOFT YEAR 2000 TEST CRITERIA.
ANY MICROSOFT YEAR 2000 STATEMENTS MADE TO YOU IN THE COURSE OF
PROVIDING YEAR 2000 RELATED UPDATES, YEAR 2000 DIAGNOSTIC TOOLS, OR
REMEDIATION SERVICES (IF ANY) ARE SUBJECT TO THE YEAR 2000
INFORMATION AND READINESS DISCLOSURE ACT (112 STAT. 2386). IN CASE
OF A DISPUTE, THIS ACT MAY REDUCE YOUR LEGAL RIGHTS REGARDING THE
USE OF ANY SUCH STATEMENTS, UNLESS OTHERWISE SPECIFIED BY YOUR
CONTRACT OR TARIFF.
|
|
|