專利名稱:解決電腦“2000年”問題新方案的制作方法
自電子計(jì)算機(jī)創(chuàng)始以來,早期的計(jì)算機(jī)程式設(shè)計(jì)者為了節(jié)省儲(chǔ)存空間和便用方便,將日期中的世紀(jì)號(hào)刪去,年份以兩位數(shù)的格式進(jìn)入了計(jì)算機(jī)的軟硬件,這一刪確實(shí)節(jié)省了不少空間,也帶來了不少方便,但同時(shí)也無意中在計(jì)算機(jī)系統(tǒng)中埋藏了一個(gè)大隱幻。就是在進(jìn)入2000年時(shí)計(jì)算機(jī)不能正確辨別年份而導(dǎo)致計(jì)算機(jī)出錯(cuò)或停止運(yùn)行。這就是出現(xiàn)電腦”2000年”問題的根源。
受”2000年”問題危害的不是哪一個(gè)地區(qū)或哪一個(gè)國家,而是全世界計(jì)算機(jī)應(yīng)用領(lǐng)域的各行各業(yè)(不包括Pentium系列、Windows95、Windows98、NT、Word for Windows、Excel等)。它給計(jì)算機(jī)應(yīng)用領(lǐng)域帶來的損失將是巨大的。所以,電腦”2000年”問題已經(jīng)引起有關(guān)部門的高度重視,也相繼研發(fā)了許多解決”2000年”問題的方案。
美國吉姆在《Solving the year 2000 problem》(內(nèi)蒙古文化出版社出版的(2000年電腦危機(jī)最佳解決方案綜述>書號(hào)ISBN 7-80506-555-1)一書中詳細(xì)地闡述了”2000年”問題的實(shí)質(zhì)和目前已有的幾個(gè)解決方案。吉姆說解決這個(gè)問題較理想的方法是擴(kuò)展所有日期欄位。但我們都知道這個(gè)理想基本無法實(shí)現(xiàn),尤其是擴(kuò)展資料庫已建日期欄。另外還有橋接程式、位元轉(zhuǎn)換、滑動(dòng)日期等方案,但這些方案都不盡如人意,各有其實(shí)施難度和不徹底性。就是說到目前還沒有一個(gè)方案能徹底解決”2000年”問題。所以他提醒人們,這種形勢(shì)不容樂觀。
但我覺得書中有一節(jié)說得不妥。就是在計(jì)算機(jī)中,人們把日期中的世紀(jì)號(hào)”19”給省略了,所有電腦里的年份都被假設(shè)在二十世紀(jì)。”這句話大概在許多人的思想中已形成了一種觀念,這種觀念是不是便”2000年”問題不好解決的原因之一?其實(shí)我認(rèn)為計(jì)算機(jī)中日期欄省去世紀(jì)號(hào)”19”后,所有電腦里的年份都被假設(shè)在一世紀(jì),與實(shí)際公元年相差十九個(gè)世紀(jì),即一千九百年。計(jì)算機(jī)就在這種錯(cuò)誤的假設(shè)中生存了近半個(gè)世紀(jì)。現(xiàn)在計(jì)算機(jī)突然進(jìn)入二十一世紀(jì)或返回一世紀(jì)初當(dāng)然會(huì)運(yùn)算出錯(cuò)。
由此,我們產(chǎn)生了一個(gè)新的方案。
既然已經(jīng)過去的事已成為歷史,是很難改變的。我們不該盯住過去,而應(yīng)放眼未來。
就是說既然計(jì)算機(jī)中的年份被錯(cuò)誤地假設(shè)成兩位數(shù)不容易擴(kuò)展,那么我們就將錯(cuò)就錯(cuò)不擴(kuò)展了(指資料庫已建日期)。我們?cè)谙到y(tǒng)日期和相關(guān)程序上下功夫。以前我們?cè)谟?jì)算機(jī)中抹去了1900年(一千九百年),以后仍然抹去1900年。也就是說把系統(tǒng)日期中年份欄及相關(guān)程序(讀、寫計(jì)算、顯示)擴(kuò)展或改寫一下,擴(kuò)展的方向不是2000、2001、…,而是99、100、101、102……(即可以自然進(jìn)位的自然數(shù))或者是99、A0、A1、A2……F9。(混合進(jìn)制計(jì)數(shù),高位為十六進(jìn)制,低位為十進(jìn)制。)這樣改造后計(jì)算機(jī)就可以正確運(yùn)算出日期差了。
混合進(jìn)制計(jì)數(shù)法只能屬應(yīng)急(六十年)方案。先不說改造的難度,其改造運(yùn)行的后果將比2000年問題更嚴(yán)重。所以,此法看來是不可取的。這里我們不再細(xì)說了。
至于自然效法,改造難度和成本小(因不同系統(tǒng)而不同)。按此方向改造,可以避免很多不良后果。所以說此方案是解決”2000年”問題的一個(gè)捷徑把系統(tǒng)日期年份欄從2000轉(zhuǎn)換為100,或從00轉(zhuǎn)換為100,使它能與以前兩位數(shù)的年份直接或間接地運(yùn)算出正確的日期差,這道理雖然很簡(jiǎn)單,但要在計(jì)算機(jī)中轉(zhuǎn)換成功也不是件很容易的事,并不是任何人在任何計(jì)算機(jī)上敲入兩條命令就可以立刻完成的,也并不是所有的計(jì)算機(jī)系統(tǒng)日期年份欄擴(kuò)展到100(以上)就能解決的。因?yàn)?,有的原程序中使用日期的地方很多,而它們的年份欄格式仍然是兩個(gè)字符,所以,針對(duì)不同系統(tǒng),有的要借助特定的工具軟件反編譯回原始程序碼進(jìn)行設(shè)寫,有的還須換處理器芯片(有的還須待開發(fā)這方面的芯片),還有少部份系統(tǒng)根本就不可能向這個(gè)方向改造。所以,具體實(shí)施沒有一個(gè)恒定的格式,要根據(jù)具體情況具體實(shí)施。但此方案總的方向是明確的,就是把系統(tǒng)日期的年份欄直接地或間接地轉(zhuǎn)換為可以自然進(jìn)位的自然數(shù),使計(jì)算機(jī)能正確地運(yùn)算出日期差。向這個(gè)方向改造,雖然還有一點(diǎn)難度,但和其它方案相比要簡(jiǎn)單得多也安全得多。
權(quán)利要求
解決電腦”2000年”問題新方案的技術(shù)特征是不須擴(kuò)展資料庫已建日期,只要擴(kuò)展和改寫系統(tǒng)日期欄中年份欄及相關(guān)程序。擴(kuò)展的方向不是2000、2001、…而是99、100、101、…(即自然數(shù))。所以,凡是將計(jì)算機(jī)系統(tǒng)日期中年份欄及相關(guān)程序(讀取、計(jì)算、顯示、寫庫-)擴(kuò)展和改造為自然數(shù)(99、100、101、102、…)的或用程式轉(zhuǎn)接為自然數(shù)(99、100、101、…)的屬于使用本技術(shù),也是本申請(qǐng)要求的保護(hù)范圍。
全文摘要
近半個(gè)世紀(jì)以來,人們?cè)谠S多計(jì)算機(jī)中省去世紀(jì)號(hào)用兩位數(shù)表示年份。在進(jìn)入2000年時(shí),這些計(jì)算機(jī)系統(tǒng)無法進(jìn)行有關(guān)年份的正確運(yùn)算,從而使計(jì)算機(jī)出錯(cuò)或停止運(yùn)行,給許多計(jì)算機(jī)應(yīng)用領(lǐng)域造成巨大經(jīng)濟(jì)損失。本方案可以最理想地解決這個(gè)問題,按此方案改造后可使存在“2000年”問題的計(jì)算機(jī)系統(tǒng)在進(jìn)入兩千年時(shí)能順利過渡。世界上已有許多關(guān)于“2000年”問題的解決方案,但都有各自的實(shí)施難度及不徹底性,而本方案的實(shí)施難度小,無不良后果,可以比較徹底地解決電腦“2000年”問題,其特征是:可省去改造中最難的一個(gè)環(huán)節(jié)——擴(kuò)展資料庫中已建日期。只須擴(kuò)展和改寫系統(tǒng)日期欄位中的年份欄及相關(guān)程序,擴(kuò)展的方向不是2000、…而是99、100、101、……(即自然數(shù))。
文檔編號(hào)G06F17/00GK1219711SQ9812573
公開日1999年6月16日 申請(qǐng)日期1998年12月12日 優(yōu)先權(quán)日1998年12月12日
發(fā)明者謝俊奇 申請(qǐng)人:謝俊奇