时间过得好快,一转眼到了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”文件上,并没有说明清楚。也只有在下次更新软件时顺便也补上去。