二者兼而有之,主要是古人的错误,但是当代远期推算天体位置也不可能做到精准。(
@北极兄以旧历推法考证旧历,有点循环论证的意思了,当然每事必验……)
汉代早期使用秦颛顼历,后略作修改为汉颛顼历(主要是减损闰余之类小改,也是为了修正斗分过大的问题),后改为太初历(三统历),后又改为四分历。
总体来看,秦颛顼历和汉颛顼历皆为四分历,斗分为四分之一,斗分为四分之一明显大于实际值。而太初历作为测验更准的选择斗分是385/1539,比四分之一还要大!就这,当局是认可当时的太初历很精准的。
这可以得出两个结论:
此外,因为技术限制(包括古代观测和计算技术以及当代回推计算技术两方面),看古代历日,首先要修正错谬误记等,其余,第一可靠的是日干支,积日和日距多半也是没问题的,年份月份大抵不差,但是朔望出错很正常,虽然朔望出错,但是如果是大错可以肉眼直接看出来,节气时刻出错则不然,非精确测量无法知道,加之整个古代的回归年普遍偏大,节气时刻出错简直太常见了。
古代准确的朔日只有靠日食定,准确的望日只有靠月食定。至于相对可靠的气至时刻,要到祖冲之何承天等人的测验才开始。
惟是气至时刻考求不易,……刘宋祖冲之尝取至前后二十三四日间晷景,折取其中,定为冬至,且以日差比课,推定时刻。宋皇祐间,周琮则取立冬、立春二日之景,以为去至既远,日差颇多,易为推考。《纪元》以后诸历,为法加详,大抵不出冲之之法。<元史·历书>
所以此处朔旦冬至即便是推算&观测结合,也没有办法避免出错。
朔日 BC 105 12 24 9 8 癸亥 冬至 BC 105 12 23 20 00 壬戌
壬戌后面就是癸亥,癸亥后面就是甲子日。所以这是三连号啊。我们前面说过,干支可靠。
那么如果当代推算无误(这是不可能的,尤其带月亮的推算),不过是冬至后天一日许,合朔后天不足一日罢了。
我认为这个程度的误差还是可以接受的。
此外,有一本书名曰《太初历日表》从元封六年开始,也可以查一下。
当然更加推荐使用最近几次日食月食来计算日差,然后再看看结果。然而我没时间了,要去搬砖……
此外的此外,一行和尚、郭守敬考证古今冬至时候没考虑汉武帝太初元年这个点哦。
重写一下回答:
我用的算法是astrolog这个软件,就是占星排盘用的,它的一个辅助作用是可以排出当时的星象图,我选取的参数有两个,第一个是-104/Dec/24 9:00 AM GMT +7(注:西安地方时属于东七区,BC 105是-104):
可以看到Sun/Moon合于摩羯座0度附近,排盘的星座是黄道坐标,所以BC105/Dec/24 9:00应该就是朔月,同时也是冬至,与历书上差了一天(癸亥下一天就是甲子)。
所以书上基本是没错的,差了正好一天,可能是古人测量的累积误差造成的。
另外,这个软件有少量的误差,但BC105应该还不至于差的太多。