古代纪年不容易
汉武帝所立的“太初历”,是最早以一月一日为岁首的历法,在之前的秦朝,使用的是十月一日为岁首的“颛顼历”。 汉代开始使用咱们今天的一月初一作为一年之始,不过只是个历法行为,魏晋时期才逐渐开始形成过新年风俗。汉章帝元和二年(公元 85 年),朝廷下令在全国推行干支纪年。我们才有了如今日历上的“甲申年”“乙丑年”这样的写法。 干支纪年就是以十个天干——甲乙丙丁戊己庚辛壬癸,和十二个地支——子丑寅卯辰巳午未申酉戌亥,双排结合往下数,第一年是甲子,第二年是乙丑,以此类推。 因为一组是 10 个,一组 12 个, 60 年即一循环。 六十年基本上是一个皇帝执政年代的上限了,所以结合年号,就能很准确的标的年份了。不过对不识字的老百姓来说,天干地支还是太复杂了,干脆就用十二生肖来对应十二地支,大家只要说自己是属啥的就很方便了。你属鸡我数兔,一减就明白。为啥生肖是这十二个?
至今发现的最早的“属相”记载出现在《南齐书·五行志》中:“东昏侯属猪……梁王属龙……”,这说明最迟在南北朝时期,用生肖属相纪年指人就已经普遍运用了。 至于为什么是这十二种动物,学界说法不一。有说是来源天象,十二生肖和二十八宿有对应关系;有的说是来源于早期的动物崇拜;郭沫若等不少大学者说十二生肖来自西域或者印度。

争议从何而来
民间之所以有这种争议,锅主要要背在袁世凯身上。 袁世凯就任总统后废旧历推新历。 原来叫“元旦”的农历新年改叫了“春节”,把“元旦”让出来给了阳历年; 原来被广泛称为“春节”的“立春”不能再叫“春节”了,只能叫“立春”。 这一来三个名字造成了很大的混淆,以至于以讹传讹,牵扯到了属相的算法上。 北宋的徐子平在总结了术数前辈的理论之后,搞了一套“子平术”,是以立春为一年之始的。 其实,这个问题是有国家标准的。

