如何知道生肖曰?
我查了一下,发现《周书》中记载的“太公算命法”与现在流传很广泛的「甲子旬」计算方法似乎有所不同—— 《周书·异祥篇》:“太公算命法” 日辰:子午卯酉,从一日到十四日;寅申巳亥,从十五日到三十日;辰戌丑未,从三月到四月。 六十甲子:甲子、乙丑、丙寅……壬午、癸未;甲申、乙酉……壬寅、癸卯;丙辰、丁巳……庚戌、辛亥;庚子、辛丑……己未、庚申。 也就是说,古人计算的是“月干支”,而不是“日干支”!如果换算成现代的公历,推算出来的日期应该要加上14或15天(农历月份的月份数)。 例如,今年立春是2月3号,农历是腊月廿四,按“太公算命法”应该是正月甲子,二月乙丑……正好是正月初一至十二月最后一天;而农历正月甲寅日至腊月戊土,则对应着公历2月4号至1月30号,推后了整整一月。
为什么古人计算的是“月干支”而非“日干支”呢?这很可能与古人的计年方法有关——“大岁实纪”,也就是现行的干支纪年法,干支为十个天干与十二地支的组合,每六年一轮回,而每个干支组合只有六个字,因此每一轮有6×2=12个字,一年刚好一个字,一百二十年为一个周期,所以称“虚岁实纪”或者“大岁实纪”。 在六十年一个周期内,每一个周期开头和末尾年份的月份数总是相等的,都是十三个月。如70年代末到80年代初那三年,1979年农历十月小,1980年是闰十月,1981年就又是十月小。在这样一个固定的周期内,把每个月的干支固定下来之后,日干支就可以通过数学公式算出来。至于月初还是月末,那只是每月第一天的不同而已,对于整个月份来说无关紧要。 这种算法适合于记年,但是不适合用于记日,因为每年初一天气可能完全不同,而且农历每个月大小也会随着节气变化而改变,这样每年的第一天就不是相同的了。要直接给某一天确定一个干支,需要更复杂的方法。
不过,虽然古代的算法不能直接拿来计算“某一天对应的干支”,但是我们可以利用它来逆推出一个“以月干支排序的日历表”。有了这个日历表,任何一天的干支都可以快速地计算出来。