時間過得好快,一轉眼到了2014秋了,我開發萬年歷(注:指“電腦醫生萬年歷、通勝萬年歷、福星萬年歷”,下同)開發到現在已經十年了、上線供用戶下載也整整六年了。我開發的歷算內核有幸與“壽星”“日梭”成為三大公認精確較高的軟件歷算內核。有人把我的內核稱為“醫生內核”有的稱為“通勝內核”,其實是同一個。網上幾乎所有萬年歷軟件都是用這三個內核做二次開發的。得到用戶的認可使我感到心蔚。許多研究歷史的學者來電或發郵件來詢問軟件是否符合史實頒行實歷。因時間有限我沒辦法一一回復,在此做以下的公開回復。
其實我在開發軟件的時候就是力求與史實頒行實歷一樣的,可是做到百分百與史實頒行實歷一樣是有一定的因難的。因為要做到與史實頒行歷分毫無差難就難在找到古代實際歷算數據相當困難。特別是太初元年(公元前104年)之前的史實歷算數據級難找。因此太初元年之前萬年歷所輸出的結果只能參考不能當做史實頒行實歷來用,太初元年(公元前104年)到現在(公元2014年)萬年歷輸出的結果可以說與史實頒行實歷起碼有98%是一樣的,當做頒行實歷來用準確率可以達到98%。也許您會問為什么這樣說?這是因為我的軟件編程的時候在還原古代實歷的時候都是按各時期各政權官方“史書”所收錄的《歷志》所記載的算法所編寫的。只要各時期官方“史書”《歷志》里面的數據是當時頒行實歷歷算實際算法,那軟件輸出結果就一定與當時實歷99.99%一樣。之所以會說99.99%因為我國各時期各政權實歷歷算數據并不是一直不變的,古人很重視歷算結果與實際天象相符、因此有時候同一個政權的實歷算法也更新改進了好幾次的,某些新歷算算法起用時間點(年份)有一些可能不一定記得詳盡,當然各政權更新改進歷算方法的目的是為了歷算結果與實際天象相符。萬一新舊使用交接點一但搞錯就會造成各別月分與實歷不一樣。比如:“在三國時期的魏國實歷,2008年編寫古代實歷時我就差點誤以為237年正月開始就使用新的歷算法,險些造成軟件輸出結果前一月只有28天;史實改用新算法交接點是在青龍五年三月,魏國當時把青龍五年的三月(建寅為正)改為景初元年的四月(建丑為正了)。所以,237年(景初元年)的正月,其實還是用的舊歷算法,前一月還是29天的”。其它有沒有搞錯現在雖然還沒發現,但我可不敢保證100%沒有搞錯。還有各別政權為了避諱,人為必動歷算結果。比如據說:”唐代就有一次因如果按當時歷算結果編歷,日食就會發生在正月初一,那時候因為怕那樣結果會引起人心不穩,就人為改動一下日子。這種情況雖然非常少,但還是有的。我也不可能一個政權一個政權的史書一一讀一次“。但是我沒有看到有關這方面的史書記載,自然在我的軟件上沒有做相關改動。如果唐代那次人為改動編歷結果是真的,在我的軟件上那個年份正月就與史實不符了,當然這事有待考正。
另外、我的軟件是從汪先生的原代碼改進而來,雖然現在汪先生的原碼在我軟件中已經很少很少了,但是在周共和元年(公元前841年)到太初元年的一些閏月法數據還是用他的。 太初元年(公元前104年)到民國是用各時期各政權實際使用歷算數據計算方法,現代部份是用現代天文數據計算的。
還有一點也要注意,我國歷代各政權推算農歷的時候是使用制歷(頒歷)機構所在地區的真太陽時為基準的,清朝及民國初在《癸卯元歷》版本(清乾隆七年1742年到1913及以前)及以前也是用真太陽時為基準。 我國在《新法天文夏歷》版本(1914至1928年)是北京地方平太陽時為基準, 現代《紫金歷》版本(1929年至今)是用東經120度平太陽時為基準。今天才發現這點在我軟件下載包中的“頒行歷還原清單.rtf”文件上,并沒有說明清楚。也只有在下次更新軟件時順便也補上去。
還有一點也要注意,我國歷代各政權推算農歷的時候是使用制歷(頒歷)機構所在地區的真太陽時為基準的,清朝及民國初在《癸卯元歷》版本(清乾隆七年1742年到1913及以前)及以前也是用真太陽時為基準。 我國在《新法天文夏歷》版本(1914至1928年)是北京地方平太陽時為基準, 現代《紫金歷》版本(1929年至今)是用東經120度平太陽時為基準。今天才發現這點在我軟件下載包中的“頒行歷還原清單.rtf”文件上,并沒有說明清楚。也只有在下次更新軟件時順便也補上去。