全面了解2000年问题

Author: 苏长富 Date: 1997-01-01

#1  何谓2000年问题
  所谓2000年问题,是指在现有的某些计算机软硬件系统、以及使用了数字化程序控制芯片的某些应用系统中,由于只采用了两位十进制数表示年份,因此,当进入2000年后,计算机无法确认当前年份是19××年还是20××年,从而带来计算错误,造成各种应用系统和控制系统的混乱。人们把这个只有到2000年才能产生危害的问题称为“2000年问题”。     
#1  哪些软硬件可能存在“2000年问题”
  1.PC机硬件:1996年元月以前所购PC机中60%以上都存在“2000年问题”,而1995年以前所购PC机中,除Mac机外基本上都存在“2000年问题”,但到2000年时,这些PC机可能大部分已经自然淘汰,或者改用作与日期无关的其他应用,如字处理等(注:字处理如使用Word的宏命令也有可能存在“2000年问题”),所以,PC机硬件的“2000年问题”风险并不很高。判别PC机硬件是否有“2000年问题”的方法是进入CMOS设置或在DOS或WINDOWS下,将系统时钟日期改为12/31/99,时间改为23:55,然后关机,等5~10分钟后重新启动系统,如果系统日期中年代显示为2000,则说明该系统无2000年问题。
  2.操作系统:目前流行的各种PC机操作系统,如MS-DOS 6.22、PCDOS 7.0、Windows 95、OS/2 Warp等在设计时已考虑到了“2000年问题”,且均已经过了严格测试,其“2000年问题”风险几乎等于零,但也不能完全排除其中可能存在着的与“2000年问题”有关的缺陷(bugs)。
  3.应用软件:这是PC机“2000年问题”的主要风险。
  ①用dBase、Foxbase等数据库管理系统开发的应用软件,如果使用了其提供的日期类型,且有日期判定操作,那么此应用软件中“2000年问题”的风险性将很高。
  ②在理论上,用C、C++、Pascal等语言编制的应用程序出现“2000年问题”的风险要比用Cobol、dBase、FoxBase等开发工具所开发的应用软件更低。
  ③上述①、②条所述要受编程实践的约束,如果程序开发人员的开发工作缺乏统一规范和有效控制,即使其使用的是“2000年问题”较安全的语言如C++,也有可能开发出有“2000年问题”的应用软件。
  ④商品软件,如其性能测试不严格,开发时缺乏统一规范,其“2000年问题”的风险性也将很大。
#1  怎样防范“2000年问题”
  1.PC机硬件的风险防范:大多数PC机硬件供应商提供BIOS升级以增强系统性能,所以可通过系统BIOS升级来解决PC机硬件的“2000年问题”。对于不能进行BIOS升级的PC机,可在2000年以前把其自然淘汰或改用作与日期无关的其他应用等。
  2.操作系统的风险防范:尽量使用新版本的操作系统如MS-DOS 6.22、PCDOS 7.0、Windows 95、OS/2 Warp等,因其在设计时已考虑到了2000年的兼容性问题。
  3.应用软件的风险防范:①购买商品软件须来源正常,购买前应了解该软件开发公司的有关资料,弄清其开发工作是否规范,并对其软件做有意识的“2000年问题”测试。②对现有软件进行分析论证,正确处理已受影响的数据,以减少损失。③对现有软件如有源程序,可进行修改,以解决2000年兼容性问题,如无源程序或修改难度太大,可逐步向新软件过渡,在2000年以前自然淘汰原来的软件。④做好程序开发人员的教育、培训和规范化管理工作,降低自行开发软件“2000年问题”的风险性。                
#1  小资料:
#2  常用软件的有效支持时间
  1.MS-DOS操作系统:有效支持时间为1980年1月1日至2099年12月31日。在输入小于80年的年份时,认为是21世纪,即20××年;在使用DATE命令时,2000年前,可输入两位数表示19××年,其它年份必须将年份四位数完整输入。
  2.Windows 3.x软件:支持有效时间为1980年1月1日至2079年12月31日,年份只需输两位数,在小于80时认为是20××。
  3.Windows 95操作系统:支持有效时间为1980年1月1日至2099年12月31日。
  4.Excel 5.0软件:有效支持时间为1900年1月1日至2078年12月31日,但它是整数数据的子集(1~65380),只要按日期格式输入在此子集区间即可。
  5.FoxBase软件:有效支持时间为1582年10月15日至9999年12月31日,超出这个区间,只显示“//”,在显示日期时只占8位数,其中年号占两位,而实际上占4位,用year函数可得完整年份。使用CTOD函数时,如果使用19××年的日期,可直接以8位转换,例如:日期=CTOD(‘01/03/97’),其他年份则要完整输入,例如:日期=CTOD(‘01/03/2000’),日期=CTOD(‘01/03/1875’)。
  6.FoxPro软件:有效支持时间为0年3月0日至9999年12月31日。