公历是太阳历,是以地球绕太阳一周的时间来制定的.农历是则大致是以月球围绕地球公转时间来制定.农历属于一种阴阳历,平均历月等于一个朔望月,但设置闰月以使平均历年为一个回归年,设置二十四节气以反映季节(太阳直射点的周年运动)的变化特征,所以又有阳历的成分.至今几乎全世界所有华人及朝鲜、韩国和越南及早期的日本等国家,仍使用农历来推算传统节日如春节、中秋节、端午节等节日.·公历的前身是古罗马凯撒修订的儒略历.根据儒略历的规定,每4年有1个闰年,闰年为366日,其余3年(称为平年)各有365日.公元年数能被4除得尽的是闰年.儒略历1年平均长365.25日,比实际公转周期的365.2422日长11分14秒,即每400年约长3日.这样到公元16世纪时已经积累了有10天误差.可以明显感觉到两至两分提前了.在此情况下,教皇格列高里十三世于1582年宣布改历.先是一步到位把儒略历1582年10月4日的下一天定为格列历10月15日,中间跳过10天.同时修改了儒略历置闰法则.除了保留儒略历年数被4除尽的是闰年外.增加了被100除得尽而被400除不尽的则不是闰年的规定.这样的做法可在400年中减少3个闰年.在格列高里历历法里,400年中有97个闰年(每年366日)及303个平年(每年365日),所以每年平均长365.2425日,与公转周期的365.2422日十分接近.可基本保证到公元5000年前误差不超过1天.