APP下载

公元纪年与干支纪年之间的转换

2017-03-28甘超一

中学数学杂志(高中版) 2017年2期
关键词:纪年数字

甘超一

1公元纪年法

现行的公元纪年法是从耶稣出生之年算起,这一年以前的年份叫公元前某年,以后的年份叫公元某年.但应该注意,没有公元0年这一年.我国是从1949年中华人民共和国成立之后采用公元纪年的,比如今年是公元2017年(可简记为2017年).

因为没有公元0年,所以本文把公元前1,2,3,…,n,…年分别记作公元0,-1,-2,…,1-n,…年.因而,在下文中的公元n(n∈Z)年中都有意义.

2干支纪年法

中国自古便有十天干(即甲,乙,丙,丁,戊,己,庚,辛,壬,癸)与十二地支(即子,丑,寅,卯,辰,巳,午,未,申,酉,戌,亥)的说法.天干地支纪年法(简称干支纪年法),是把天干中排奇数号的(即甲,丙,戊,庚,壬)与地支中排奇数号的(即子,寅,辰,午,申,戌)任意搭配,但天干在前地支在后(比如甲子,甲寅等等);或把天干中排偶数号的(即乙,丁,己,辛,癸)与地支中排偶数号的(即丑,卯,巳,未,酉,亥)任意搭配,也是天干在前地支在后.

由分步乘法计数原理可知,奇数号的搭配是5·6种情形,偶数号的搭配也是5·6种情形.所以在干支纪年法中,共有5·6·2即60种情形.这60种情形的前后顺序就是干支纪年法的一个周期(也叫一甲子),即下面6行10列的表1:

表1中的“甲子”、“乙丑”、…、“癸亥”就表示干支甲子年(可简记为甲子年)、乙丑年、…、癸亥年,数字1,2,…,60分别表示相应干支纪年的代号.因为干支纪年法是呈周期变化的,所以癸亥年的后一年是甲子年,甲子年的前一年是癸亥年.

3记号

在本文中,把自然数n被10除所得的余数即n的个位数记作(n)10,可得(n)10=0,1,2,…,或9;把自然数n被12除所得的余数记作(n)12,可得(n)12=0,1,2,…,或12.

对于已知的整数m,可得存在唯一的整数k及自然数r(r≤10),使得m=10k+r,在本文中把这里的r记为(m)10;同理还可得(m)12的含义.

4把公元纪年转换成干支纪年

因为干支纪年甲子年、乙丑年、…、癸亥年中的“甲子”、“乙丑”、…、“癸亥”都是汉字,所以欲把它们与公元纪年之间进行转换,必须先把“甲子”、“乙丑”、…、“癸亥”这些汉字转换成相应的数字.我们规定十天干与十二地支对应的数字分别是下面的表2、表3:

这样,甲子年、乙丑年、…、癸亥年就可分别用有序数对(4,4),(5,5), …,(3,3)来表示,得到下面的表4(可以查得公元1804年是甲子年即干支1年,由60年一甲子可得公元4年也是干支甲子年.再得公元5年是干支乙丑年等等):

由表4可发现下面的结论:

公元n(n=1,2,…,60)年是干支GZ年,其中G是n的個位数在表2中对应的天干,Z是n被12除所得的余数在表3中对应的地支.

再由一甲子是60年及第3节中约定的记号,可得把公元纪年转换成干支纪年的算法是:

定理1公元n(n∈Z)年是干支GZ年,其中G是(n)10在表2中对应的天干,Z是(n)12在表3中对应的地支.

例1把公元2000,2050,3000年及公元前1001年分别转换成干支纪年.

解当n=2000时,可得(n)10=0,(n)12=8.0在表2中对应的天干是庚,8在表3中对应的地支是辰,所以公元2000年是庚辰年.

当n=2050时,可得(n)10=0,(n)12=10.进而可得公元2050年是庚午年.

当n=3000时,可得(n)10=0,(n)12=0.进而可得公元3000年是庚申年.

公元前1001年即公元-1000年,当n=-1000时,可得(n)10=0,(n)12=8.进而可得公元前1001年是庚辰年.

由一甲子是60年,可得公元前1001年即公元-1000年与公元20年有相同的干支纪年. 当n=20时,可得(n)10=0,(n)12=8.进而可得公元前1001年是庚辰年.

5把干支纪年转换成公元纪年

下面由干支GZ年(其中天干G在表2中对应的数字是g(g=0,1,2,…,9),地支Z在表3中对应的数字是z(z=0,1,2,…,11),请注意g与z同是奇数或同是偶数)来求出其对应的公元n(n∈Z)年,即已知g,z求n.

由一甲子是60年可知,若求出了一个n的值是n0,则所有n的值为60k+n0(k∈Z),所以问题的关键是求出n的某一个值,使得公元n年是干支GZ年.

由表4的第7列可得,当g=0,z=0,2,4,6,8,10时,n的一个值可以分别是60,50,40,30,20,10,进而可得此时n的一个值可以是6g-5z;

由表4的第8列可得,当g=1,z=1,3,5,7,9,11时,n的一个值可以分别是61,51,41,31,21,11,进而可得n的一个值可以是6g-5z;

由表4的第9列可得,当g=2,z=0,2,4,6,8,10时, n的一个值可以分别是72,62,52,42,32,22,进而可得n的一个值可以是6g-5z;

由表4的第10列可得,当g=3,z=1,3,5,7,9,11时, n的一个值可以分别是73,63,53,43,33,23,进而可得n的一个值可以是6g-5z;

由表4的第1列可得,当g=4,z=0,2,4,6,8,10时, n的一个值可以分别是84,74,64,54,44,34,进而可得n的一个值可以是6g-5z;

……

由表4的第6列可得,当g=9,z=1,3,5,7,9,11时, n的一个值可以分别是109,99,89,79,69,59,进而可得n的一个值可以是6g-5z.

所以由已知的g与z,可得n的一个值可以是6g-5z.

进而可得把公元纪年转换成干支纪年的算法是:

定理2干支GZ年(其中天干G在表2中对应的数字是g(g=0,1,2,…,9),地支Z在表3中对应的数字z(z=0,1,2,…,11)是公元60k+6g-5z(k∈Z)年.

例2在19世纪末到20世纪初的中国历史上发生了甲午战争、戊戌变法、庚子赔款、辛丑条约、 癸卯学制、辛亥革命这些历史事件,请问它们分别发生于公元哪一年?

解用定理2来求解.

(1)由表2及表3可得g=4,z=10,再得甲午年是公元60k-26(k∈Z)年,进而可得甲午战争发生在1894年.

(2)由表2及表3可得g=8,z=2,再得戊戌年是公元60k+38(k∈Z)年,进而可得戊戌变法发生在1898年.

(3)由表2及表3可得g=0,z=4,再得庚子年是公元60k-20(k∈Z)年,进而可得庚子赔款发生在1900年.

(4)由表2及表3可得g=1,z=5,再得辛丑年是公元60k-19(k∈Z)年,进而可得辛丑条约发生在1901年.

(5)由表2及表3可得g=3,z=7,再得癸卯年是公元60k-17(k∈Z)年,进而可得癸卯学制发生在1903年.

(6)由表2及表3可得g=1,z=3,再得辛亥年是公元60k-9(k∈Z)年,进而可得辛辛亥革命发生在1911年.

注ⅰ)把天干、地支分别按表2、表3转换成相应的数字,会使公元纪年与干支纪年之间的转换(即上述定理1、定理2)比较简洁.

起初,笔者是按照下面的表5、表6来转换的:

ⅱ)本文研究的方法是“发现规律”和“数学建模”.用同样的方法还可研究公历日期与农历日期、公历日期与星期几、农历日期与星期几之间的转换.

猜你喜欢

纪年数字
燕云十六州地区辽代纪年墓研究
答数字
“年”的别称
对时间的再认识
数字看G20
成双成对
数字变变变