说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中避免2000年问题的捷径

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中避免2000年问题的捷径

---- 众所周知

对于应用软件而言千年虫主要是指2000年跨越问题。也就是当我们采用两位数的省略形式表示年份

在进入2000年时

由于可能将00年理解成1900年,从而引起的日期表达、运算、输出等方面的严重差错,其实大多数操作系统及应用系统在内部格式上都有充分的日期表示范围的

通常都能表示1900-9999年的日期

就连DOS的文件日期中采用可怜的7位二进制数

也能表示1980-2099。所以真正引起众多问题的原因是在于人们习惯于使用两位数年份格式来进行输入、显示甚至运算、比较等

从而引起了世纪跨越时的种种问题。

---- 由于多数语言及数据库系统都支持完整年份的日期表示法。所以解决办法之一是系统中避免使用缩写年份表示法(即2位数年份)。但是对于已经使用的系统来说, 许多系统可能对日期的宽度格式做了既定的统一的规划, 大批量地修改扩充位数显然是一项极为耗时耗力的工作,而且往往顾此失彼,很难不出差错, 所以这并不是一个最佳解决办法。再说在日常生活中人们总是习惯于避繁就简,使用简略的纪年称呼。我相信到了明年后年,人们一定又很习惯地称呼本年为00年、01年。

---- 基于上述两点理由, 我们又不可否认采用两位数年份格式的实际意义。所以保留2位数年份表示法,并寻求避免千年虫的方法, 将有更大的意义。 我们知道,两位数的年份(00-99),只能表示一百年的日期,超过范围则必定引起二义性。通常系统将它约定为1900-1999年,这样自然就无法表示2000年了。如果我们将00-99约定为1930-2029年,也就是对映射的时间窗作一定的移动, 那么对于多数应用都能完全满足纪年的需要,而且不需要改动数据储存和输入输出的格式。

---- 为了实现这一时间窗的移动, 多数系统必须人工干预, 也就是必须在输入或转换2位数年份时强制映射到约定的时间窗中。

---- 那么,有没有更为简捷的解决办法呢?

---- 打开windows98的控制面板中区域设置, 在日期选项卡中有几个参数和2000年跨越有密切相关,一是短日期格式,可以是yy-M-d或yyyy-MM-dd等,它决定系统日期的显示格式。一是两位数年份的变换时间窗,我们可以设为1930-2029.

---- 经过这样设定后回到Delphi中观察,我们发现日期显示是变为4位年份格式。但是当您试着在日期栏中输入'00-1-1'会发现,系统依然变换为1900年1月1日. 问题仍未解决。

---- 经过不断研究,我们找到了答案。原来在Delphi中同样有个时间窗定义变量TwoDigitYearCenturyWindow。比如将它设为60,它的含义就是将今年的年份前溯60年作为时间窗起点,也就是变换时间窗为1939-2038。这样一来问题就彻底解决了。

---- 值得一提的还有另外一个变量ShortDateFormat

作为新开发的系统,最好设为'yyyy-MM-dd'

这样系统就不依赖于windows系统设置的格式,而且统一为整齐的10位宽度,这时既可输入4位数年份又可方便输入两位数年份, 让系统根据时间窗来自动转换。当然对于某些特殊应用中年份可能出现超出时间窗范围的日期,那就一定得完整输入了,就算不小心输成2位数形式,也能立即从系统转换出来的4位年份中看出错误,而得到及时纠正!

---- 综上所述

在已开发的老系统中

可在程序开始处加入以下几行

再用Delphi4.0重新编译,即可消除通常的2000年问题!

DateSeparator := '-';

ShortDateFormat:='yy-mm-dd';

TwoDigitYearCenturyWindow:=80;

---- 对于新开发的系统,最好在程序开始处加入:

DateSeparator := '-';

ShortDateFormat:='yyyy-mm-dd';

TwoDigitYearCenturyWindow:=70;

---- 如此简单的几句, 一定会为您换来无穷的效益!

OpenStack Heat向应用市场更近一步 初创公司Ionic Security:云安全必须与时俱进 谷歌董事长:一年后消费者才能用上Goolge Glass Windows 8.1重新推出的“开始按钮”毫无意义 手眼并用 代码泄露三种Google Glass手势操作 Google新论文 CPI²:基于Linux的世界级跨数据中心服务器CPU监控 20款非常实用的Web工具和资源列表 数据库界大事件 随机写性能巨好的TokuDB开源了 CMDN Club 26期:数字渠道营销主题沙龙 暴强:用iOS设备控制的HTML5“小蜜蜂”游戏 Leap Motion:500元体感,精确到0.01毫米 大事件:三大运营商将发布融合计费SDK 再培养一个扎克伯克:六款适合儿童上手编程的App 首届中国软件工程标准高峰论坛:软件开发的新机遇与挑战 Verizon研究显示:中国成为2012年度网络间谍攻击的主要来源 Clang宣布全面支持C++11标准 北大陈钟:SEMAT—中国软件工程发展的新机遇 超华尔街预期:苹果第二财季营收为436亿美元 跨平台游戏引擎Spaceport已被Facebook收购 文科生开发GPU数据库 性能超传统数据库70倍 开发者赚了90亿:从苹果Q2财报,看iOS生态 备受开发者青睐的13款热门开源项目 Netflix赌赢《纸牌屋》背后的秘密武器:大数据分析 为什么:Google Glass只能运行Web应用? 对话Rackspace高级副总裁Jim Curry:我们没有"辜负"营销炒作 7个大数据流言——避免错误的Hadoop和云分析决策 Facebook vs. Google:撇开搜索,数据中心产业上的又一竞技 苹果将于6月10日召开WWDC 新版OS X和iOS或将面世 传Amazon今年秋季发布电视机顶盒设备 够快:不会3种以上语言的程序员不是好程序员 Cloud Foundry、Greenplum获通用电气1亿美元注资 从事共享软件开发的进来谈谈做共享的辛酸好吗? TListView中某一SubItem怎末实时更新?在线等。。 http://www.000163.com/的空间能不能信得过? 请帮忙哟,在线急等 asp.net下如何用c#编写程序实现调用数据库中的多个表显示在datagrid 如何调用存储过程来删除表中的列名???? 给一个变量赋空值的问题 如何在DirectDraw显示Edit,输入文字?? 贴子回复次数大于跟给分次数是什么意思啊?让不让结啊?? 结交delphi爱好者! 请各位高手给我指点一下方向? 如何在Sybase数据库中获得刚插入的那条记录的主键? 怎样获得菜单项(menuitem)名? 简单问题 请问如果有一个dll文件,我想知道里面有什么函数,但我又没有说明书,有什么工具么? 报表设计器怎末没有在外接程序菜单中显示出来呀?? 如何知道选哪个? 急,如何将图标保存在一个数组中,并将它显示出来? struts配制数据源中如何指定url编码? 在csdn设立开放源代码的项目 妈的!等咱有了钱... zt 请问那位大哥有在linux用mysql管理前端啊 client script动态改变表单的问题 我从网上下载了一个例程,可是太大了,不知道从哪里开始读 如何能在程序的线程被kill的时候将定义的变量写入文件保存 有做过图书馆管理系统的请进(VB+SQL Server)C/S结构 请问这样一行代码是什么意思? 简单问题给100分 在csdn如何改变字体,还有,如果不必自动登陆? 关于创建共享库(.so)的问题,高手帮忙 关于如何限定一个文本框的数据类型 超出一个月未结贴的名单公布 用DATAGRID的绑定列能传一个ID给下一下FROM吗? 模板应用时出现的图片不能显示出来的问题? 这么简单的问题 就20分吧 郁闷...辞过职的人帮帮我 电脑极不稳定 那里可以下载到VC++6.0的MSDN啊??着急看呢! 请问visio的数据库模型的关系怎么删除?? Linux无法启动, 请高手解决!!! 请问wmv格式的文件怎么打开?!(视频) 地址栏中不能输入别的网址,请问是什么原因? 如何知道win2003已被激活? 这个格式怎么实现? 急,一个很简单的photoshop问题! 我想在vb程序中加入一个广告条,请诸位推荐一个信誉好的广告条公司好吗?(来者有分) MIS程序可以制作成安装程序吗? win2003 VLK中VLK是什么意思? 运行jsp需要在2000下装什么软件? datagrid 的使用步骤是什么? 如何做流媒体? 边际替代率怎么算 一年之计在于春什么意思 包公的廉洁故事 关于边际替代率题若张某消费牛奶和面包时的边际替代率为1/4,即一单位牛奶相当于1/4单位的面包,则()为什么当牛奶价格为1,面包价格为4时,张某获得最大效用? 请问,怎样理解勾3股4玄5?小学数学.谢谢! 角a的终边经过点P(-1,2)则cosa的值是? PPR管、镀锌管、铝塑管、UPVC管、铜管的性价比哪个更好? 买一张桌子和一把椅子共用56.5元,一张桌子比一张椅子贵12.5元,桌子和椅子各多少钱? 若cosa=4/5,a∈(0,π),则cota的值是 对角线均相等的四棱柱是一定长方体? 塔机金属结构有何特点? 轨道式塔式起重机较长轨道每隔()米加一组接地装置? 四棱柱里,只有长方体的外接球直径为体对角线吗? 塔式起重机金属结构上囊纹的“囊纹”是什么意思 拿破仑是怎样登上历史舞台的?如何认识其对外战争的性质? 由长方体的各面上的对角线所确定的平面共有 答案是20个 我想知道具体是怎么来的 讲的越具体越好 战略协作伙伴关系是什么?国家之间的关系主要有哪几种?1.战略协作伙伴关系是什么?(和战略合作伙伴关系有什么区别?)2.国家之间的关系主要有哪几种?(最好用我国现在与其他具体国家的 请问后的舞请与我一起片中英文歌曲的名字是什么 拿破仑为什么要加冕称帝? 两张课桌之间有一张椅子英文怎么说 sucked into 单反数码相机连接天文望远镜我的相机是佳能500D ,望远镜是 博冠150/750 用什么转接口,或转接筒,广州哪里有的买?还有的是连接方法,是相机镜头连 望远镜目镜吗?还是要怎么连 后门的旁边有一张椅子吗 用英语怎么说? 为什么通货膨胀有利于进口,不利于出口? 宁夏回族自治区有红黄蓝白黑枸杞属于()色,甘草属于()色,滩羊毛属于()色,发菜属于()色,急用 I was in a hurry to finish my work 同义句I ___ my work __ I am sucked at shopping. 宁夏回族自治区有红黄蓝白黑五种特产狗杞属于什么色滩羊毛属于什么色发菜属于什么色石砚属于什么色 书屋里有一张桌子和一张椅子用英语怎么说 在通货膨胀不能完全预期的情况下,通货膨胀将有利于:( )A.债务人B.债权人C.雇主D.政府多选题 拿破仑加冕称帝,在法国实行?如题 他在法国实行 “资产阶级共和制”还是“资产阶级军事独裁统治” 中国如何推进建立国际新秩序 老外说 的 sucked 有哪些意思?比如说 my kidney sucks? 韩国人对朝鲜族的态度是不以为然还是什么 中国政府关于建立国际新秩序的主张是什么? 急用解释下面一些在新闻媒体及口语中频频出现的词语:1.酷 2.粉丝 3.曝光 4.焦点 5.作秀 6.透视 7.宰 8.红牌 9.利剑高悬 10.请君入瓮 那么就永远不见吧 用英语怎么说? 学而时习之不亦说乎 的意思三人行必有我师 意思 学而不思则( ),思而不学则殆的意思 中国政府为什么要把建立国际新秩序作为我国外交政策的重要组成部分 中奶酪和迷宫有什么寓意 英语的姓氏和名字搞不清啊!在姓氏后标上L,在名字后标上F., 数码相机与天文望远镜连接出现镜头与相机之间的通讯失败,怎么回事?我用佳能350D相机机身通过转换环和天狼长戈1号天文望远镜连接进行天文拍照,出现镜头与相机之间的通讯失败Err01 谁动了我的奶酪是什么意思? 跪求好听的英文姓氏!注意是姓氏!不是名!我的英文名是wendy相配一个姓氏,最好是以M开头的. 为什么哲学都是二元的?什么是二元哲学? 缩写这句话娘儿俩最高兴的事是他们的小牛活了 学而时习之“时”用法 增加税收、向银行借款和透支、发行政府债券 来弥补财政赤字的各自优缺点 非洲动物有哪些?名字要英文的.不需要太全,几个就行,英文名字,带中文翻译 基因重组在符合条件的细胞中一定会发生吗 大量发行货币怎样在一定程度上削减财政赤字? 汤姆最喜欢的动物是熊猫 的英语是什么 历史上包拯到底怎么死的? 中国是否可以实行赤字财政政策希望有自己的观点 ppr管子遇冷会有水吗,各位帮看一下是漏了还是凝结我家金德的ppr自来水管子,进户与楼道里的那段管子,我放一会自来水(把管子里存水放干净)隔一会用手摸上去会有水,请问各位是漏了,还 历史上的包拯真正的包拯长得是什么样子的啊?脸真的是黑色的?头上真的有弯月?如果真的有弯月 那弯月是怎么弄的啊?我在此谢谢了 . 实行赤字财政是指什么 边际替代率 是什么? The coat___he was hed yesterday is still wet.且我们在学定语从句 镜头可伸缩的照相机(如松下FX07)能接在天文望远镜上进行摄影吗是博冠开拓者 60/700 欧盟讨伐美国窃听行径中国品牌闪耀约堡国际车展日本禁核,但愿不是作秀葡萄牙数千民众游行抗议2014年预算土耳其敦促安理会解决叙利亚难民危机洪水袭击“印度米碗”伊朗外长与联合国-阿盟特别代表呼吁政孟加拉国总理呼吁反对党取消全国大罢工奥地利总理国庆讲话告诫不忘纳粹历史巴勒斯坦呼吁共同抵制以扩建犹太人定居印度东部洪灾死亡人数升至45人李娜打入总决赛排名进Top3 创亚洲河南济源一路段7公里6个“收费站”专刘云山:教育实践活动整改工作要准、狠白岩松惋惜恒大未能锁定胜局:首尔死刑亚冠决赛首回合恒大2-2首尔 穆里奇中国科学家成功研发人感染H7N9禽流宗庆后语出惊人:中国不能再造房子了李克强在中南海紫光阁会见东盟十国经贸捅死医生的连恩青烦躁时砸东西打母亲 亚冠决赛首回合恒大2-2首尔 穆里奇养老服务相关专业招生将扩大00:00法国VS德国04:00巴西报亭正在消失?猫不吃鱼吃虫能手公交地铁调价广征民意伊核问题谈判面临关键一役日本部分解除对朝制裁善用不确定性思维 增强治理能力全国政协召开“深化司法马航或遭私有化退市原声毕录前5月我国对韩进出口增2.8%世界杯的魅力国际足联暗助攻势足球崛起?移民球员成足球强国人才库农村五保户供养标准首超万元社交新语“Yo”我国建成世界输送量最大直流输电工程“BTV文艺”暑期欢乐多微信电商服务号开通外链服务
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘