專利名稱:解決計(jì)算機(jī)“千年問(wèn)題”的方法
技術(shù)領(lǐng)域:
本發(fā)明提供了一種解決計(jì)算機(jī)“千年問(wèn)題”的方法,該方法仍只采用兩位數(shù)表示年份,對(duì)目前的計(jì)算機(jī)來(lái)說(shuō)很容易實(shí)現(xiàn)長(zhǎng)達(dá)K×4162億年的日期表示范圍,最大則可達(dá)K×3.4億億億億億年(K為一較大的正整數(shù))。
在二十世紀(jì)計(jì)算機(jī)發(fā)明初期,設(shè)計(jì)人員為了節(jié)約寶貴的內(nèi)存,僅用兩位數(shù)表示年份,這樣,隨著2000年的到來(lái),計(jì)算機(jī)會(huì)把“00”當(dāng)作1900年,從而引起一系列與日期有關(guān)的處理錯(cuò)誤,引發(fā)各種各樣的計(jì)算機(jī)業(yè)務(wù)處理系統(tǒng)和控制系統(tǒng)的功能紊亂。屆時(shí),“千年問(wèn)題”將在信息、金融、電訊、軍事、交通以及與網(wǎng)絡(luò)有關(guān)的各行各業(yè)搗亂,它的連鎖反應(yīng)將給人類帶來(lái)巨大的經(jīng)濟(jì)損失,甚至給國(guó)家安全帶來(lái)隱患。據(jù)估計(jì),“千年問(wèn)題”給全球造成的損失將超過(guò)6000億美元。
目前常用的修改日期的方法有擴(kuò)增法、滑動(dòng)窗口法、日期操縱法、月份加計(jì)法。以上方法有如下缺點(diǎn)一、四種方法表示的日期范圍都很有限,月份加計(jì)法只能將2000年問(wèn)題往后延遲7年,日期操縱法也至多推后幾十年,滑動(dòng)窗口法的窗口大小小于100年,擴(kuò)增法用四位數(shù)表示公元紀(jì)年,雖然長(zhǎng)一些,但也只能用到公元9999年,公元10000年來(lái)臨時(shí)又會(huì)產(chǎn)生“萬(wàn)年問(wèn)題”。二、后三種方法未解決“00”和“99”問(wèn)題。在很多系統(tǒng)中,字符串“00”和“99”被賦予了特殊的含義,如存檔、特殊處理甚至檔案刪除等,后三種方法未采取有效措施來(lái)防止“00”和“99”問(wèn)題。三、擴(kuò)增法、日期操縱法、月份加計(jì)法都有不符合人們習(xí)慣的方面。擴(kuò)增法用四位數(shù)表示年份不符合人們用兩位數(shù)表示年份的習(xí)慣,日期操縱法、月份加計(jì)法雖然用兩位數(shù)表示年份,但又和實(shí)際的不一致。四、滑動(dòng)窗口法、日期操縱法表示的年份仍有可能與實(shí)際的年份發(fā)生混淆,從而引起紊亂。五、擴(kuò)增法與用兩位數(shù)表示年份的方法相比存在占用更多的存貯空間、花費(fèi)更多的輸入時(shí)間、修改起來(lái)浪費(fèi)人力、財(cái)力、物力且容易引起信息丟失的缺點(diǎn)。擴(kuò)增法還存在兩位數(shù)向四位數(shù)轉(zhuǎn)換的同步問(wèn)題,要實(shí)現(xiàn)同步,難度很大。另外,用四位數(shù)表示年份的應(yīng)用程序與用兩位數(shù)表示年份的應(yīng)用程序之間還存在兼容問(wèn)題。
本發(fā)明的目的是提供一種有足夠長(zhǎng)的日期表示范圍、既能解決“00”和“99”問(wèn)題、又能解決閏年問(wèn)題、還能解決兼容問(wèn)題、且節(jié)省人力、物力、財(cái)力、還符合人們習(xí)慣的修改方法。
本發(fā)明的目的是這樣實(shí)現(xiàn)的。
仍只采用兩位數(shù)表示年份,但對(duì)表示年份的兩位數(shù)字的背景色及前景色作單獨(dú)定義,不被整個(gè)屏幕的顏色覆蓋,本發(fā)明的實(shí)質(zhì)就在于世紀(jì)數(shù)通過(guò)兩位年份數(shù)字的前景標(biāo)準(zhǔn)色與背景色表達(dá)出來(lái)。若計(jì)算機(jī)能表示N種顏色(N為正整數(shù)),可按由深到淺的順序?qū)種顏色的灰度定義為0(黑色)、1、2、3、......、(N-2)、(N-1)(白色)。取灰度為1~(N-2)的顏色為標(biāo)準(zhǔn)色,標(biāo)準(zhǔn)色既參與顯示,又參與計(jì)算;取灰度為0、(N-1)的兩種顏色為增強(qiáng)色,增強(qiáng)色參與顯示,但不參與計(jì)算。每個(gè)年份數(shù)字的前景色由標(biāo)準(zhǔn)色與增強(qiáng)色兩種顏色組成。標(biāo)準(zhǔn)顯示表示的數(shù)字中標(biāo)準(zhǔn)色占絕大部分,增強(qiáng)色占一小部分,標(biāo)準(zhǔn)顯示用于肉眼能清楚分辨前景標(biāo)準(zhǔn)色與背景色時(shí);當(dāng)前景標(biāo)準(zhǔn)色與背景色比較接近而肉眼不易分辨時(shí),用增強(qiáng)顯示,增強(qiáng)顯示的數(shù)字中增強(qiáng)色占絕大部分,標(biāo)準(zhǔn)色占一小部分?;叶刃∮诨虻扔?N-2)/2的標(biāo)準(zhǔn)色對(duì)應(yīng)的增強(qiáng)色的灰度為(N-1),灰度大于(N-2)/2的標(biāo)準(zhǔn)色對(duì)應(yīng)的增強(qiáng)色的灰度為0,增強(qiáng)顯示與對(duì)應(yīng)的標(biāo)準(zhǔn)顯示所表示的同一個(gè)數(shù)字的相同部分的顏色剛好對(duì)調(diào),增強(qiáng)顯示時(shí)所計(jì)算得的世紀(jì)數(shù)與對(duì)應(yīng)的標(biāo)準(zhǔn)顯示時(shí)的完全相同。標(biāo)準(zhǔn)顯示和增強(qiáng)顯示的數(shù)字中標(biāo)準(zhǔn)色和增強(qiáng)色的塊數(shù)、塊的大小、分布有多種組合,可以有K種組合(K為一較大的正整數(shù),這K種組合有必要制訂統(tǒng)一的標(biāo)準(zhǔn),以便各軟件能相互識(shí)別)。
設(shè)A為世紀(jì)數(shù)(將公元紀(jì)年后兩位年份數(shù)去掉后所得的整數(shù),A的基數(shù)為19,即A≥19)、年份個(gè)位數(shù)背景色灰度為F、年份十位數(shù)背景色灰度為G、年份個(gè)位數(shù)前景標(biāo)準(zhǔn)色灰度為H、年份十位數(shù)前景標(biāo)準(zhǔn)色灰度為I、組合序數(shù)為J(J為整數(shù),且0≤J≤K-1)。
根據(jù)世紀(jì)數(shù)計(jì)算年份數(shù)前景標(biāo)準(zhǔn)色和背景色的灰度的方法如下令B=A-19C=INT(B/(N-2))(INT()函數(shù)為取整函數(shù),下同。)D=INT(B/(N-2)2)E=INT(B/(N-2)3)J=INT(B/(N-2)4)則F=B+1-(N-2)*CG=INT((B-(N-2)2*D)/(N-2))+1H=INT((B-(N-2)3*E)/(N-2)2)+1I=INT((B-(N-2)4*J)/(N-2)3)+1根據(jù)年份數(shù)前景標(biāo)準(zhǔn)色與背景色的灰度及組合序數(shù)計(jì)算世紀(jì)數(shù)的方法如下B=J*(N-2)4+(I-1)*(N-2)3+(H-1)*(N-2)2+(G-1)*(N-2)+F-1A=B+19由以上知Bmin=0,Bmax=K(N-2)4-1,故本方法表示的年數(shù)長(zhǎng)達(dá)K(N-2)4×100年。目前計(jì)算機(jī)普遍能表示256種顏色,則用該法能表示的年數(shù)長(zhǎng)達(dá)K×(256-2)4×100=K×4162億年,目前計(jì)算機(jī)最多能表示232種顏色,則用該法能表示的年數(shù)長(zhǎng)達(dá)K×(232-2)4×100=K×3.4×1040年,即K×3.4億億億億億年。
根據(jù)本方法對(duì)軟件作相應(yīng)修改一般便能解決“千年問(wèn)題”,必要時(shí)還可根據(jù)本方法對(duì)硬件作相應(yīng)修改。軟件中還應(yīng)包括以下內(nèi)容計(jì)算機(jī)應(yīng)能自動(dòng)識(shí)別日期,當(dāng)計(jì)算機(jī)時(shí)鐘日期年份后兩位數(shù)由“99”變?yōu)椤?0”時(shí),A自動(dòng)加1(A的基數(shù)為19),這樣,新世紀(jì)日期中的年份位置會(huì)自動(dòng)生成對(duì)應(yīng)灰度的背景色,并調(diào)用相應(yīng)灰度的數(shù)字或?yàn)檎{(diào)用相應(yīng)灰度的數(shù)字做好準(zhǔn)備。還應(yīng)包括手動(dòng)定義或修改的方法及取消對(duì)世紀(jì)數(shù)的定義的方法。手動(dòng)定義或修改的方法為將光標(biāo)移到年份數(shù)位置處,左點(diǎn)一下鼠標(biāo),則出現(xiàn)如下空表格。填入世紀(jì)數(shù)后,計(jì)算機(jī)會(huì)自動(dòng)計(jì)算并填入組合序數(shù)、年份個(gè)、十位數(shù)的背景色與前景標(biāo)準(zhǔn)色的灰度,再右點(diǎn)一下鼠標(biāo)確認(rèn)(確認(rèn)后表格消失),接著可輸入兩位年份數(shù),若覺(jué)得數(shù)字前景標(biāo)準(zhǔn)色與背景色不易區(qū)分,還可在相應(yīng)數(shù)字欄顯示方式處選增強(qiáng)顯示,計(jì)算機(jī)默認(rèn)為標(biāo)準(zhǔn)顯示。以上定義對(duì)以
后的日期一直有效,直到重新定義或修改或取消。取消定義后該處的年份數(shù)為普通顯示方式,即背景色、前景色與屏幕一致,前景色只有一種,取消定義的方法為將光標(biāo)移到年份數(shù)位置處,左點(diǎn)一下鼠標(biāo),出現(xiàn)上述空表格后再右點(diǎn)一下鼠標(biāo)(右點(diǎn)鼠標(biāo)后表格消失)。軟件應(yīng)能識(shí)別年份數(shù)的背景色、前景標(biāo)準(zhǔn)色、增強(qiáng)色、組合序數(shù),在計(jì)算、比較等需要世紀(jì)數(shù)處,應(yīng)有轉(zhuǎn)換程序,自動(dòng)按前述方法將背景色、前景標(biāo)準(zhǔn)色灰度及組合序數(shù)代入公式計(jì)算出世紀(jì)數(shù)從而計(jì)算出公元紀(jì)年。還可查詢世紀(jì)數(shù),將光標(biāo)移到要查詢的年份數(shù)位置處,右點(diǎn)一下鼠標(biāo),便出現(xiàn)上述表格,其中世紀(jì)數(shù)、組合序數(shù)、年份個(gè)、十位數(shù)的背景色、前景標(biāo)準(zhǔn)色的灰度都已填好,此時(shí)也可左點(diǎn)一下鼠標(biāo)選用或改變顯示方式,再右點(diǎn)一下鼠標(biāo)確認(rèn)后表格消失。
防止“00”和“99”問(wèn)題的方法在軟件中設(shè)有測(cè)定數(shù)字前景色的程序,若前景色不止一種,則不執(zhí)行系統(tǒng)賦予“00”和“99”的特殊功能,由于日期中每個(gè)年份數(shù)字都由標(biāo)準(zhǔn)色和增強(qiáng)色兩種顏色表示,故不會(huì)產(chǎn)生因日期中的“00”和“99”而產(chǎn)生的誤操作。注意在修改已有數(shù)據(jù)或新建數(shù)據(jù)時(shí),應(yīng)將賦予了特殊含義的“00”和“99”表示成普通顯示方式,即使它們有日期格式的形式也應(yīng)表示成普通顯示方式,若已表示成年份數(shù)的標(biāo)準(zhǔn)色與增強(qiáng)色共同顯示的方式,應(yīng)用前述方法取消對(duì)它們的定義,使它們恢復(fù)成普通顯示方式。
由于本方法用兩位數(shù)實(shí)際上已把整個(gè)公元紀(jì)年都表示出來(lái)了,閏年問(wèn)題也就自然解決了,程序在算出公元紀(jì)年后做如下判斷若后兩位數(shù)都是0且能被400整除,則該年份是閏年,若后兩位數(shù)不都是0且能被4整除,則該年份是閏年,否則不是閏年。
對(duì)于用四位數(shù)表示年份的應(yīng)用程序,應(yīng)做如下修改當(dāng)存貯或向外傳遞與日期有關(guān)的信息時(shí)應(yīng)將年份轉(zhuǎn)換成用本方法表示的兩位數(shù),當(dāng)調(diào)用或接收與日期有關(guān)的信息時(shí)應(yīng)將用本方法表示的兩位年份數(shù)轉(zhuǎn)換成對(duì)應(yīng)的四位數(shù)。這樣修改后用四位數(shù)表示年份的應(yīng)用程序與根據(jù)本方法作了相應(yīng)修改的用兩位數(shù)表示年份的應(yīng)用程序同時(shí)使用時(shí)的兼容問(wèn)題也就解決了。
本發(fā)明除了具有日期表示范圍足夠長(zhǎng)、不會(huì)因日期而產(chǎn)生“00”和“99”問(wèn)題、解決了閏年問(wèn)題、兼容問(wèn)題、且符合人們習(xí)慣等優(yōu)點(diǎn)外,與目前常用的擴(kuò)增法、滑動(dòng)窗口法、日期操縱法、月份加計(jì)法相比還有如下優(yōu)點(diǎn)根據(jù)這四種方法修改時(shí),由于原應(yīng)用軟件不能正常識(shí)別修改后的日期數(shù)據(jù),因此修改時(shí)原應(yīng)用軟件不能再用了,也必須同時(shí)修改或更換新軟件,由于很多應(yīng)用軟件是軟件公司開(kāi)發(fā)的,用戶不知道源程序,自己無(wú)法修改,所以只有在獲得所有與原應(yīng)用軟件相對(duì)應(yīng)的新軟件后才能對(duì)日期數(shù)據(jù)進(jìn)行修改,因此根據(jù)這四種方法修改起來(lái)很被動(dòng),時(shí)間很緊迫。而本發(fā)明對(duì)年份的修改只是改變了年份數(shù)字的前景色與背景色,其他方式不變,在2000年前原應(yīng)用軟件仍能正常識(shí)別,因此只要在2000年前(有“99”問(wèn)題的在1999年9月9日前)用根據(jù)本發(fā)明作了相應(yīng)修改的軟件工具完成對(duì)日期數(shù)據(jù)的修改,修改時(shí)原應(yīng)用軟件不作修改就仍能正常運(yùn)行,因此根據(jù)本發(fā)明修改時(shí)不會(huì)造成系統(tǒng)運(yùn)行的中斷,而且處于主動(dòng)地位,有更多的時(shí)間。
本發(fā)明不僅適用于計(jì)算機(jī)和軟件,而且還適用于嵌入式系統(tǒng)等與日期有關(guān)的系統(tǒng),只要采用了上述方法來(lái)表示和識(shí)別日期,也屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種解決計(jì)算機(jī)“千年問(wèn)題”的方法,其特征在于世紀(jì)數(shù)通過(guò)年份數(shù)字的顏色表示。
2.根據(jù)權(quán)利要求1所述的解決計(jì)算機(jī)“千年問(wèn)題”的方法,其特征在于每個(gè)年份數(shù)字用多種顏色表示,通過(guò)顏色的不同組合來(lái)表示不同的世紀(jì)數(shù)。
3.根據(jù)權(quán)利要求1所述的解決計(jì)算機(jī)“千年問(wèn)題”的方法,其特征在于通過(guò)年份數(shù)字與賦予了特殊含義的“00”和“99”的顏色種類的區(qū)別來(lái)防止“00”和“99”問(wèn)題。
全文摘要
本發(fā)明提供了一種解決計(jì)算機(jī)“千年問(wèn)題”的方法。該方法仍只采用兩位數(shù)表示年份,但世紀(jì)數(shù)穩(wěn)含在年份數(shù)的顏色中,相應(yīng)就解決了閏年問(wèn)題。通過(guò)年份數(shù)的多色與賦予了特殊含義的“00”和“99”的單色區(qū)別就解決了“00”和“99”問(wèn)題。通過(guò)設(shè)置轉(zhuǎn)換程序也解決了兼容問(wèn)題。用本方法易實(shí)現(xiàn)長(zhǎng)達(dá)K×4162億年的日期表示范圍,最大則可達(dá)K×3.4億億億億億年(K為一較大的正整數(shù))。本發(fā)明適用于計(jì)算機(jī)和軟件及嵌入式系統(tǒng)等與日期有關(guān)的系統(tǒng)。
文檔編號(hào)G06F3/023GK1247337SQ9910669
公開(kāi)日2000年3月15日 申請(qǐng)日期1999年5月26日 優(yōu)先權(quán)日1999年5月26日
發(fā)明者劉偉山 申請(qǐng)人:劉偉山