千年零一虫

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

前不久给某公司编写了一个统计软件,用的是VB6.0+Access97数据库,在Windows2000下调试,所有功能正常,并无明显BUG。于是发行。。。。。。

过了一个月之后,用户反映:在按日起统计功能中发现每个月12日之前的数据没有被统计出来。感到很奇怪。拿回来调试,一切正常,并不像他们所说的每个月12日之前的数据没有统计。于是到实地考察。果真由此问题,可是将其完整拿到我这里的系统中仍然是正常的。*?* 于是分析我们之间的系统有和不同。我们用的是Win2000,用户用的是Win98。于是找到一台98,发现故障。可是仔细看程序,没有什么地方写错,而且在2000下可以正常工作。于是仔细分析了数据库,发现在98中Access97数据库中的日期型数据使用yy/mm/dd的形式,可是按照微软的解释,年份在45年以前被认定为20XX年,不应有任何问题啊?可是拿到数据库操作窗口当中,发现年份被修改了。比如2001-4-12,存储形式为01/04/12,可是被系统改为12/04/01,这样程序读出的时间是2012-4-1。可是01/04/13系统却认为是2001-4-13,这是正确的。在windows2000下去没有这样的问题,所以出现了上述的情况。

如何解决呢?经过多次试验,将手工输入的年份用Format函数改写成dd/mm/yy格式就可以解决这一问题。原因很奇怪,Windows98对每个于13日之后的日期可以用两种方式表达。即yy/mm/dd和dd/mm/yy这两种格式都可以被正确识别,每个月12日之前的日期只能是dd/mm/yy格式。可使用这种方式写出来的程序去不能在Windows2000中文版下正常运行(E文的没试过)。所以要想能够兼容2000必须判断操作系统类型,然后用不同的格式。这个老盖把win98的千年虫杀死了,可是他去没有杀死千年零一虫。不知还有没有千年另一十虫,由于那个软件2010年就到期,所以由于匆忙也就没有进行测试,那位网友感兴趣,可以测试一下,结果告诉我!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航