公元纪年与干支纪年的换算
实用年份减四、取余定干支:一套手算即可掌握的换算通式,含公元前的处理与常见误区。
细读
翻开任何一部史书或一本老历书,都会遇到甲子、辛丑、戊戌这样的字眼。天干十个,地支十二个,两两相配,六十年一轮,循环不息。史书上的甲午战争、戊戌变法、辛亥革命,用的都是干支纪年;今天很多人过的本命年,看的生肖属相,背后也是这套干支。可是公元二〇二四年为什么叫甲辰年?一九一一年为什么恰好是辛亥年?其实,公历年份与干支之间有一条清晰的换算通道,步骤简单,小学生也能掌握。这一篇就把这条通道完整讲清楚,并用多个年份逐一验算。
换算的原理:周期六十
天干十字,依次为甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支十二字,依次为子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。纪年时天干与地支各自向前推进一位,十与十二的最小公倍数是六十,所以配到第六十组又回到甲子,周而复始,这就是「六十甲子」一名的由来。要给某个公元年份找出干支,只需在两条队伍里各找到它对应的那一站:天干每十年走完一圈,地支每十二年走完一圈,于是「除以十取余数」和「除以十二取余数」这两个动作,正好能把两条队伍里的位置同时指出来。
步骤拆解:三步得出干支
- 第一步,取公历年份,先减去四,得到一个新数。
- 第二步,把新数除以十,取余数。余数〇到九,依次对应十天干:〇是甲,一是乙,二是丙,三是丁,四是戊,五是己,六是庚,七是辛,八是壬,九是癸。若除尽无余,余数按〇计,即取末位的癸。
- 第三步,把新数除以十二,取余数。余数〇到十一,依次对应十二地支:〇是子,一是丑,二是寅,三是卯,四是辰,五是巳,六是午,七是未,八是申,九是酉,十是戌,十一是亥。若除尽无余,余数按〇计,即取末位的亥。
- 把第二步得到的天干与第三步得到的地支合在一起,就是这个年份的干支。
为什么偏偏要减四?因为在公元纪年之中,公元四年正是甲子年。减去四之后,甲子年这个起点恰好变成可以被十和十二整除的数,两个余数便同时归零,全部对应关系随之摆正。减四,等于把计数的尺子先挪到甲子那一格,再开始量。
多例验算:先在纸上过一遍
方法是否可靠,要看验算。我们选三个干支明确、史有明文的年份来核:一九〇〇年是庚子年,一九一一年是辛亥年,一九九七年是丁丑年。
先看一九〇〇年。减四,得一九八〇?且慢,一九〇〇减四是一八九六。一八九六除以十:十乘一百八十九是一千八百九十,余六,对应天干第七位的庚。再除以十二:十二乘一百五十八恰是一千八百九十六,除尽无余,余数为〇,对应地支第一位的子。合起来是庚子,与史实相合。第一次验算通过。
再看一九一一年。减四,得一九〇七。除以十:十乘一百九十是一千九百,多出七,余七,对应天干第八位的辛。除以十二:十二乘一百五十八是一千八百九十六,多出十一,余十一,对应地支末位的亥。合起来是辛亥,正是辛亥革命的那一年。第二次验算通过。
最后看一九九七年。减四,得一九九三。除以十:十乘一百九十九是一千九百九十,余三,对应天干第四位的丁。除以十二:十二乘一百六十六是一千九百九十二,余一,对应地支第二位的丑。合起来是丁丑。第三次验算通过。
三例皆合,通式与史实没有矛盾,可以放心使用。为了熟练,不妨再加两个近年:二〇二四年减四得二〇二〇,除以十除尽,余〇为甲;除以十二余四,为辰,得甲辰。一九八四年减四得一九八〇,除以十除尽为甲,除以十二:十二乘一百六十五是一千九百八十,除尽余〇为子,得甲子——一九八四年确实是一个新的六十甲子的开头。
六十年一轮的速算
干支六十年一轮,于是还有一条更省力的捷径:把年份减去四,再对六十取余数,余数是几,这一年就是六十甲子里的第几组,余数为〇即是甲子年。换言之,凡是甲子年,加六十、减六十、加减六十的任何倍数,结果仍旧是甲子年。记住一个已知的甲子年,比如一九八四,往后数,二〇四四、二一〇四都是甲子;往前数,一九二四、一八六四也都是甲子。甲子年既已锁定,其余年份只要看它与甲子年相差几年:一九〇〇与一九二四相差二十四年,甲子起算第二十五组是戊子?不必背全表,可以再拆一步——相差二十四年,天干前进二十四位,二十四除以十余四,从甲数到戊,是戊;地支前进二十四位,二十四除以十二除尽,余〇,仍是子,合为戊子,而一九〇〇年算得的庚子与它相距十六年,十六对六十而言恰是倒推,戊子倒退十六年正是庚子,互相印证不误。
实际速算时不必如此迂回:先在心里找最近的甲子年,用加减六十的倍数凑到附近,再看相差的年数直接读出干支。比如推二〇六〇年:二〇四四是甲子,二〇六〇与之相差十六年,天干前进十六位、十六除以十余六,从甲数到庚;地支前进十六位、十六除以十二余四,从子数到辰,得庚辰。与通式核算一致。
公元前的换算与使用提醒
公元前的年份同样可以换算,只是要多加一道小心:公元纪年中没有公元〇年,公元一年之前直接就是公元前一年。因此公元前某年在算式里要取「负的(年份数减一)」,才能与公元后的年份正确衔接。比如公元前八四一年,取负八四〇,代入通式:负八四〇对十取余,除尽无余,余〇为甲;对十二取余,负八四〇与负八百五十二之间恰差十二的倍数,余九,为申,得庚申。共和元年正是庚申,与史合。再看公元前二二一年,取负二二〇:对十取余,负二二〇比负二三〇多十,余六,为庚;对十二取余,负二二〇比负二三二多十二,余四,为辰,得庚辰,秦并六国之年为庚辰,两例均验合无误。
最后是一句重要提醒:干支纪年以农历年为准。公历一月里的大多数日子,其实还落在前一个农历年之中,立春与春节之前尤其如此。所以用本文方法算出的结果,指的是「该农历年」的干支;若要为公历一月初的具体日子落款题款,须先查万年历弄清这一天属于哪个农历年,再论干支。岁首问题另有专篇,此处点到为止。
总结一下:年份减四,对十取余得天干,对十二取余得地支;两余相合,干支立现;对六十取余,甲子可查;公元前年份取负的年份数减一,一样畅通。这套算法不玄不秘,人人可验,这正是干支纪年历经三千年而不衰的底气。