日的开头有从天明、平旦开始,从日落开始,从夜半子时开始等几种计算法.
月的开头有从月圆开始和从新月出现开始等几种计算法.
年的开头有从昼夜长度由长变短的冬至开始,和昼夜长度相等的春分开始,和从其他的标志开始等多种计算法.
最令人头痛的问题是一个朔望月不是三十天整,而是二十九天半还多一点.但是在实际生活中不能把一天分为两半,使它的上一半属于上一个月,同一天的下半天属于下一个月,那样太不方便了.一年365天如果规定为十二个朔望月,共354天,则还剩下十一天,朔望月29.5309天和回归年365.2422天之间没有一个公倍数,不能形成周期,顾此失彼,怎么办?
正是由于对这几个问题处理的方法不同,在世界上有过干差万别,各种各样的历法.归纳起来不外三种:阴历、阳历、阴阳合历.前两者只顾一头,第三种是两头兼顾.
先说阴历,它是单纯根据月亮圆缺的周期制定的.所谓"单纯"就是它只顾月亮这一头,不管由太阳与地球的关系而产生的气候冷热等季节变化.月亮又叫做"太阴"所以这一类历法叫做"太阴历",简称为阴历.当月亮和太阳正好分处于地球两边的时候,柔和的月光通宵达旦地照耀着酣睡的大地,这个月亮最圆的时刻叫做"满月",也叫做"望".由于月亮是时刻都在运动着的;所以严格地说来,真正的"望"只是极短暂的一瞬间,一刹那,一般人是观察不到那样的细微变化的,通常就把包括真正的"望"这一天全天叫做"望"日,或者简称为"望",这是一种最容易观察到,最显著的—种天象.与此相反,当月亮正处在太阳与地球中间的那一天,人们根本无法看到月亮的任何一点形象,这一天就叫做"朔",在天文学则是指月亮的黄道经度和太阳的黄道经度正正相符合的那一瞬间.天文学家把月相变化的周期,即从朔到朔或从望到望的时间长度叫做"朔望月",藏历中称之为tshes-zla,也可译为"太阴月".多年的观测表明朔望月的长度不是固定不变的,它的平均长度为29天12小时44分,即29.5306日,这是制定历法非常重要的一个数据,必须牢牢记住.初步可暂时粗略地记为二十九天半.
最典型的阴历是伊斯兰历里用于历史纪年和宗教祭祀的"月分历"(区别于用于农业上的"宫分历")在我国古代把它叫做"回回历".它永远固定地以十二个朔望月为一年,平均每个月为29.5日,十二个月共354日,闰年在年底增加十日为355日,不设闰月.
另外,我们知道与人类,特别是处于地球的温带的人们的生活和生产有密切关系的是春暖、夏热、秋凉、冬冷的气候变化.这种由春、夏、秋、冬四季循环所构成的年叫做"回归年."也就是太阳从最高到最低,再从最低回到最高的周期,它在天文学上严格的定义是:"平太阳连续两次通过春分点的时间间隔."根据长期天文观测的结果,知道回归年的长度是365.2422日,即365天5小时48分46秒,这是制定历法时又一个非常重要的数据,必须牢牢记住的粗略地可以记为365又四分之一天.古代的历算家们所得到的数据不是一下子就达到这样的精确程度,总是随着历法的发展,逐步向精确靠近的.
由此可见,回归年比太阴年(即伊斯兰教的阴历年)两者相差十一天,经过十六、七年就会积累到一百八十天左右,也就是说冬天与夏天要颠倒过来.纯粹的阴历是不设置闰月的,而藏历与农历都有闰月,虽然平年也是354或355天,而有闰月的年份则为384天,因此不能说农历是阴历,藏历也不是阴历,而是阴阳合历.
2、夏历、农历与旧历
先说"夏历"这个名称的来源.汉族早在两千四、五百年之前就开始使用十二地支(子、丑、寅、卯,……)纪月的办法,以冬至日所在的那个月为子月,其次月为丑月、又次月为寅月、冬至以前的那个月为亥月.以子月为年首正月者叫做"建子",其余类推.有的史书上记载说:夏代建寅、殷商建丑,周代建子,而秦朝建
亥.汉朝
初年仍建亥,汉武帝太初元年(公元104年)又恢复夏正建寅.其后各朝各代,虽然历法多次改换,而建寅这一点始终未变(除去武则天采用周正的很短的几年).从采用建寅这一点上说,从汉朝的太初历到清朝的时宪历都用了夏正,都可以称为夏历,但不是说历法上的其他成分要素都是夏朝的.这样,"夏历"就成了历法中的一个类名,而不是某一种历法的专名了.
至于"旧历"是公元1911年以后才使用的名词.辛亥革命以后政府宣布采用公历的纪月纪日方法,相对于这种新的方法而言,人们就把清朝时所用的"时宪历"叫做旧历.
"农历"这个名称的来源.汉族传统的历法中有二十四节,而来源于西方的公历里没有完整的二十四节的全套名称,只有其中的冬至、夏至、春分、秋分这几个.二十四节气起源于汉族古代,而节气对农业生产有重要意义,因而又常把旧历叫做"农历".这都是民间习惯形成的名称.
3、阳历与公历