农历

农历，又称夏历，是中国传统的阴阳合历历法，广泛应用于汉字文化圈。
记载此历法的历书（又作历本、历日、历日、历头），称为皇历或黄历。古代历书由皇帝颁布，官方印刷，所以称为皇历。因多用黄色封皮，又称黄历。古代有各种类型的黄历，平民用的称「民历」（大统民历）</ref>，上头记载入学、安床、裁衣、沐浴、剃头等日常宜忌之。皇帝用的「御览历」除日常宜忌外，还有颁诏、出师、招贤、遣使等军国大事宜忌。官吏用的「壬遁历」，则有上官、上册、进表、赴任的吉凶。除黄历外还有「七政躔度历」，记载了七曜行度用以预测天象，相当于今日的天文年历。通书得名自「通天人之际」，是术数家对黄历的传注，增添了择日的宜忌规则、神煞起例等术数理论和方法的内容。现代通常将黄历称为农民历，因包含了二十四节气，适宜农民务农。农民历的雏型可追溯至《夏小正》，该书记载了每个月的天象、物候及日常民生活动等农政资讯。
汉武帝时因历法与天象运行失合，召集群臣制定了《太初历》，为中国传统历法史上一次重大的改革，为后世建立起基本的历法规则。主导改历的太史令司马迁采用与农时相应的「夏正」为岁首，自此大都采用「夏正」，以寅月为正月；之后朔日和节气的计算方式在后世得到修订（改为定朔、定气）。现行农历是依据既定基本规则，运用现代天文学成果修订，依照日月实际运行轨道等天文数据计算得来，而非像古代是据参考座标的历元推算往后之年月日。
农历和格里历、伊斯兰历、印度历、佛历一样，是当代应用广泛的历法之一。在华人地区、许多少数民族地区、朝鲜半岛、越南及全世界海外华人社区，农历广泛应用于生日标记、各种民俗活动节日等，比如「春节」、「元宵节」、「端午节」、「中秋节」、「重阳节」等节庆活动，为中华文化的象征。
称谓.
中华民国成立后，孙中山宣布以格里历作官方历法，称为国历、新历，中国传统历法则返称旧历、传统历、古历。近代也有人将其称作中历、华历、中国古历。
“农历”因其适用于农事生产的时序而得名，同“旧历”、“阴历”一样，是因民国时期「废历运动」（废阴历改阳历，或废旧历改新历/公历）而出现的称呼。农历名称的出现，也是废历运动推行者对中国传统历法仍得到广泛使用的一种妥协。因为农民占当时人口绝大多数，农业耕作仍是主导性的生产方式，因此新历无法在广大的农村地区推行，农民仍然需要使用旧历。国民政府虽然尝试禁止旧历，取消旧历新年，没过多久也只能碍于民情，宣告放弃。浙江农业协进会在1922年就编著过《农家历》，1947年也有名为《中华民国三十六年标准农历通书》的书籍出版。
农历以寅月为岁首，因与传说中夏朝以寅月建正相符，而被又被称作夏历。
相比格里历为阳历，农历是以月相-{周期}-安排月份之日期，故习称阴历。但其实，农历是阴阳历，它考虑了地球环绕太阳公转的周期，以冬至回归年为基准确定岁实，配合季节阳光分一岁为二十四节气。
除农历（lông-li̍k）、旧历（kū-li̍k）、阴历（im-li̍k）外，闽南语还将农历称为老历（láu-li̍k）或咱人，“咱人”是「咱人的历日」（lán-lâng ê la̍h-ji̍t）的略缩。粤语称为农历（nung4 lik6）、旧历（gau6 lik6）、阴历（jam1 lik6）。
阴阳合历.
置闰规则.
根据由1582年10月15日于儒略历改成为格里历历法以来修改置闰规律列表如下：
太阴阳日历规定的只是平年（365天再加上一天闰日已为366天，合共731天）约354-355日，闰月（每19年一次的7个置闰法）约383-384日不等，包括每400年倍数一次闰年有（1600、2000）等，不属于并非400年倍数一次范围亦改为100年倍数一次才平年，例如（1700、1800、1900及2100）等。
就是纪录时间之座标系统多数古代民族根据天象来确定历法，都有年和月之概念：年，就是四季周期，即地球围绕太阳公转；月，就是月相盈亏周期，即月球围绕地球公转。准确测量回归年和朔望月之长度，会发现一年比十二个月多大约10.875日，即单个阴历或阳历无法同时满足年和月的准确周期。
阴历之历月是准确按月相盈亏圆缺周期来制定，1个朔望月长约29.53日，故制订历月为大月就是30日，小月就是29日，若以12个月为1年，1年之长度就落在354日或355日之间，故年只是大体上符合一个四季循环，但其长度和四季周期有一些差异，这就导致新年并非固定于某个季节，而是缓慢推移，从冬季逐年移动到夏季。例如伊斯兰历、古希腊历都是如此。
阳历之历年是准确按太阳视运动周期（回归年）为制定标准，没有月之概念，或者月只是大体符合月亮阴晴圆缺变化的周期长度。例如西历月长与真正的朔望月只相差0.5至1.5日，西方语言之月份与月亮同源（例如英语中的），但月亮圆缺与每月日期变化没有固定关系（即新月的日期逐月缓慢推移）。季节明显之地区，所原创之历法多为阳历，比如尼罗河定期泛滥，造就了古埃及太阳历。
华夏历法同时考虑到太阳及月球运动，兼顾了年和月之准确周期，是为阴阳合历。夏历依据观测月相变化，严格按照朔望月周期确定月份（定朔），为农历之阴历部份，12个月平均约在354日左右。通过观测太阳视运动与黄道的关系，观察出回归年之周期约在365.25日左右，由太阳之高度角变化周期，影响地表气候环境之不同，定出二十四节气（定气），为农历之阳历部份。在结合时衡量到阴历十二个月与阳历回归年每年约有11日落差，为了使彼此长度能够更加接近，自春秋时代起即有「十九年七闰月法」；又排定了闰月规则，力求平衡调和中气在相应固定月份。如此既达到年合四季、月合圆缺，即新月固定于初一，新年固定于冬春之交，达成阴阳和谐。
在十九年七闰之规律下，每个人在其19岁倍数之生日，有机会西历生日与夏历重合于同一日。
十九年置七闰的规则一直使用到时宪历才被废除。现在使用的置闰规则，是看前后两个冬至之间，有几个完整的月相周期，以此来决定该年是否置闰。详见#置闰。
历法.
据紫金山天文台研究员刘宝琳和杜伦大学教授的手稿，及《古今历术考》作者谭冰的补充，就现代天文学而言，中国传统历法可用以下规则描述：
定月.
现行历法，以朔分月，每个朔望月之始末通过太阳和月球之相对位置确定，以每个月太阳直射月球背面之时刻，定出朔日，朔日定为初一，为每月之始日。每月太阳直射月球正面之日期定出望日，一般为十五或十六日，为每月之中点日期。一个月之上旬按顺序习惯上称为初日，如一月十日称为正月初十。下旬称为廿日，亦有些通胜将之说成念日；如一月二十二日称为正月廿二或正月念二。
冬至所在月定义为十一月，之后月份为十二月、正月、二月……复至十一月。其中农历每年第一个月按照习惯称为正月，十一月及十二月分别又称为冬月及腊月。表示气候寒冷的成语「十冬腊月」就是从此得来，字面意思即为十月、十一月和十二月为一年中最寒冷的月份。若两冬月间，不计冬月剩余11个月，则不需置闰。
置闰.
现行历法在时宪历时，已废除「十九年置七闰」，以及由于当前近日点在冬季，冬季节气之间较短，十冬腊月较容易分配到中气；若采无中置闰法，闰月较常发生在夏季。未来因近日点进动，可能改变修改「无中气置闰」的规则，改为在满足特定条件下，对第一个无中气之月置闰。条件如下：两冬月(冬至所在的月份)之间，不计冬月，若剩余11个月(即两冬至间有12次新月)，该年不用置闰；若剩余12个月(即两冬至间有13次新月)，但第一个无中气的月之前的月有两个中气，则不作闰月论，而第二个无中气的月则被视为闰月；另一方面，若第一个无中气的月之前的月只有一个中气，则即为闰月，第二个则被视为正规月（尽管无中气），月序与前一个月相同（闰月在几月后面，就称闰几月）。采用现行之定朔法，有可能会出现无中气月但无须置闰之状况。
定年.
定完月后，即可决定一年之起始。民用历法中，以正月朔日为一年之开始，称为元旦（元春旦）或正旦（正月旦），正月初一子夜至下一个正月初一子夜前之时间段称为「一年」。有时一年内出现两个立春，即年初一后立春，翌年年初一前再立春，称为「双春年」，一般视作吉兆。按照现行历法计算，双春年必定有闰月，有闰月之年必定有双春，故又称「双春兼闰月」。相反，如果年初一至翌年年初一前夕没有立春，称为「盲年」。在十九年周期内，双春兼闰年及盲年各出现七次，而单春年只有五次。
在古代，官方通常会指定年号，并确定开始时间（奉正朔），随后依顺序纪年。夏历同时会使用干支标注年份顺序（包含岁星纪年及太岁纪年），十二地支又对应十二生肖，比如壬辰龙年。民间通常会在民间信仰于节庆表示神明诞辰或传统戏剧作品使用，如辛卯年四月十二日、甲午年腊月初七等。
中华民国成立时，废除农历之官方地位，改以格里历计算年份，同时称正月朔日为春节，废除了年号制度。现今人们通常直接用民国纪年或公元纪年来表示农历年份，严谨的标示会在年份后加上干支纪年，如2021年9月5日为中华民国110年辛丑七月廿九。或采用黄帝纪年，若以公元前2698年为黄帝纪元元年起算，至公元年为黄帝纪元年（主要见于农民历，称黄帝纪元○○○○年。孙中山在《》所用的农历纪年即采用了当时革命党人因拒用满清皇帝年号而改用的黄帝纪元）。
详细定义.
天干地支.
天干地支60种配搭，循环往复，每60年干支纪年一个周期、每60月干支纪月一个周期、每60日干支纪日一个周期、每60时辰干支纪时一个周期，干支纪年月日时合共有八字。天干地支对应到月份，通常采用干支纪月，这种纪月以冬至所在月为子月，每一年为一个周期，如遇到闰月，闰月干支与前月相同。其中特别是地支中之子午，在夏历有着重要地位。
地支与月份、时辰有固定关系：
由于这种对应关系，每5年（日），干支纪月份（时辰）正好完成一次周期。（干支纪月不计闰月）
子午.
十二地支中，子午依据太阳位置来确定，子为阴极盛，午为阳极盛，子午为岁、日周期定出始末与中点：
日.
中国古代以子夜为日之分界，以子正初刻（00:00）为一日之开始，以夜子初四刻（24:00）为一日之终结：子时初四刻属前一日 正四刻属后日 其两日之间即所谓始之始 中之中也。：自'子正初刻'至'夜子初四刻有此分。：世人但知 子属本日 始得亥为本日终时 殊不知 子对中正初之刻为本日始时 夜子初四刻为本日终时。</ref>。但习惯中，人们倾向于认为一日开始于寅时（平旦）5点。中国传统将一日分割为12个时辰，依次是子时、丑时、寅时、卯时、辰时、巳时、午时、未时、申时、酉时、戌时、亥时。1个时辰等于2个小时，子时是下午11时至上午1时，丑时是上午1时至上午3时，以此类推。
夏历用干支来标记流水日，就像如星期般，无天文意义。60干支为一循环，甲子、乙丑、丙寅、……、癸亥、甲子。比如，2013年新年岁首（西历2月10日）是丁未日，2014年岁首（1月31日）是壬寅日。
月朔.
朔望月之长度大约在29.27至29.83日之间变动，长期平均长度是29.530588日（29日12时44分2.8秒）。因此，农历一个月是29日或30日，又称小月及大月。每一个月起始于朔日子夜，结束于下一个朔日子夜之前。现行历法采取定朔法。
平朔.
早期，采用平朔方法确定朔日。经过长期观察，确定朔望月之平均长度，比如formula_1日。然后，选一个日月合朔的日期作为历元，每经过一个月增加formula_1日，取整数部分即得朔日。
平朔规则下，通常是大小月相间，然后每经过15或17个月有一对连大月。
定朔.
元授时历起，天文台运用天体运行规律和采用实际观测天象数据，确定每朔（太阳和月球之黄经一致）之具体时间，取当日为朔日，即每月初一。
定朔规则下，各月大小排列并不固定，有时会碰到连续四个大月或是连续三个小月。
节气.
因地球椭圆地围绕太阳公转，速度不平均，故节气有二法。按平均时间为平气，按公转角度为定气。平气法之春分秋分，未必为昼夜等长。自崇祯历至今，历法使用定气。
平气.
在古代，通常以冬至到冬至之间（约formula_3 日），分割为24段（每段约formula_4日），每段起始于一个节气，依次为：冬至、小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪。
立春到立夏前为春季，立夏到立秋前为夏季，立秋到立冬前为秋季，立冬到立春前为冬季。
二十四节气中，冬至、大寒、雨水、春分、谷雨、小满、夏至、大暑、处暑、秋分、霜降、小雪为中气，通常用来确定月份。冬至所在月份为冬月、大寒所在月份为腊月、雨水所在月份为正月、春分所在月份为二月、……、小雪所在月份为十月。十二个月份里，都固定各有一个中气。无中气的月份为前一个月的闰月。
属阳历的干支月或中气月来源于观测太阳的回归年并按地支均分，属阴历的朔望月来源于观测月亮盈亏。中气之间的时间约为30日formula_5时，因此中气日之间的间隔（含前不含后）为30或31日。而一个朔望月的时间为29日或30日，一个月内要么一个中气，要么没有中气。因此，中气可以直接来确定月份及闰否。
每个中气干支月比朔望月平均多21.75小时，两者差异积累到一定程度后，朔望月就闰一个月，以此达到两者平衡对应（具体变化过程是：相对干支月，较短的朔望月逐月提前；当提前的日数达到半个月时，闰一个朔望月，即一个干支月对应两个朔望月，于是朔望月变成推后半个月；然后朔望月继续逐月提前，如此循环往复）。最终结果是，每32.6个朔望月中有一个闰月。实际观测中，由于定朔和定气的方法与绝对平均值存在差异，每两个闰月并非精确地相差32~33个朔望月，而是28~36个朔望月，总体19年7闰（12×19÷7）仍然符合32.6的平均值。
以下是前103年至1644年各闰月统计。
定气.
定气按太阳运行位置为准，二十四节气分别相应于太阳在黄道上每运动15°所到达之位置。
二十四节气中，原本惊蛰在雨水之前，谷雨在清明之前。后西汉末年刘歆将雨水、惊蛰对调，清明、谷雨对调。
由于克卜勒运动第二定律，地球靠近近日点时公转速度会比较快，当前近日点在小寒附近，因此冬至到大寒两个中气之间相隔较短，约29.45日；而地球靠近远日点时公转速度较慢，当前远日点在小暑附近，因此夏至到大暑两个中气之间相隔较长，约31.45日（以北半球为准）。
当中气间隔可以比朔望月（≈29.53日）长时，一个月可能完全在两个中气日之间，此时这个月就没有中气。反之，当中气间隔比朔望月短时，两个中气可能完全在两个朔日之间，此时一个月内就有两个中气。
以冬至日子夜到冬至日子夜前为「一岁」。一岁一般为365日，有时为366日。冬至所在月定为冬月（或子月，以天干地支记月）。不计冬至月，一岁将包含11至12个整月，包含12个整月时，第一个无中气之月份为闰月，此乃无中置闰法。若冬至在子月朔日，则前一岁必闰月；若冬至在晦日，则冬至后之一岁必闰月。
1年通常有12个月或13个月。包含13个月的年份为闰年。1810年立春至2409年除夕（立春前日）600年间的7421个月中，有双中气月19个，无中气月240个，221闰，闰月分布如下：
下一次闰冬月出现于2033年。（2033年问题）前一次闰正月出现于1651年，下一次闰正月会出现于2262年；首次闰腊月将出现于3358年。
置闰规则改革.
对冬至之理解有「冬至日」与「冬至时刻」两种。冬至日是日影最长之正午，即是正午最接近冬至时刻之日。「冬至时刻」是太阳直射点运动到最南点（南回归线）之时刻，或是太阳黄经达到270°之时刻，可通过科学推算和观测精确到几时几分几秒。目前在中国大陆使用的农历国家标准中，冬至定义为太阳地心视黄经达到270°的时刻。
由于定朔平朔及定气平气间之差异，也引发了冬至是归于上一月还是下一月之争议，如1984年、2014年、2033年问题。置闰法有遵循亘古传统之平气置闰，现行是定气日算置闰，还有定气时刻置闰，即按照朔、冬至之具体时分先后划分。
隋唐历法已经逐渐开始定朔、定冬至到时分。明朝李天经曾建议，用中气时刻是否介乎两朔时刻之间，来决定该月是否有此中气，例如崇祯十五年(1642年)小雪虽在十一月初一日，但小雪时刻在十一月朔点之前，按此法属十月，如此法则可减少双中气月之次数，并使置闰法独立于时区。
干支纪月.
史书中通常以序数纪月，干支纪月除了月建（月支）之外，月干在研究中国历史时并不普遍，而较常用于计算八字。月建于春秋时期即已可见。「以子建月」即以日南至的十一月为一年的开始。可能到了唐代才配上天干。
此外由于各帝王可能采用不同历法，因此干支纪月亦不见得准确。例如三国时期用景初历，可能出现在不同国家，却在不同日换月分的情况；一国是初一，另一国是前一个月的月末，此时月干支即不同。
计算八字时使用的干支历，与史书、传统历法（包括农历）或使用太阴历的紫微斗数有所不同。传统历法以月亮的盈亏周期作为一月，而八字计算则以二十四节气其中的十二节气（非中气）所在时刻（非以日首）分月，并赋以地支之名，如大雪小寒之间为子月，小寒到立春为丑月。因此八字计算过了当月节气发生之时刻才换月干支，可能产生月中与日中换干支的情况。
计算八字时使用的干支历以立春时刻为一年之始，每五年一循环，每月的天干由该月支所在年的天干决定。例如：若某年的子月所在之年为甲子年，则该子月为丙子月，紧接着其后的丑月是丁丑月。
年上起月的歌诀，《五虎遁月歌》：甲己之年丙作初，乙庚之岁戊为头，丙辛岁首从庚起，丁壬壬位顺流行，若问戊癸何方法，甲寅之上好推求。
具体推算如下：
甲子月.
公元纪年以下丙寅年六十月干纪年纪元后天干地支为开始，来自约（公元前4557年）开始计算：
丙寅月.
公元纪年以下丙寅年六十月干纪年纪元后天干地支为开始，来自约（公元5年）开始计算：
壬戌月.
公元纪年以下壬戌年六十月干纪年纪元后天干地支为开始，来自约（西元前5791799年）开始计算：
习俗节日.
日月同数之节日.
农历新年（春节），即农历正月初一日，古代称为“元旦”、“正旦”等，越南称为Tết Nguyên Đán（节元旦） ，韩国称为설날。农历新年是一年中最隆重之节日。中华民国（台湾）、香港、澳门、中国、越南、韩国、菲律宾、马来西亚、新加坡、印度尼西亚等国家法定假日。
上巳节，即农历三月初三日，。
端午节，即农历五月初五日，越南称为Tết Đoan Ngọ（节端午），。
七夕，即农历七月初七日晚上，越南称为Thất tịch（七夕）。
重阳节，即农历九月初九日，越南称为Tết Trùng Cửu（节重九）。
正月农历十五日（月圆）元宵节.
元宵节、上元节，均为农历正月十五日，越南称为Tết Thượng Nguyên（节上元），韩国称为대보름（大보름）。
中元节，即农历七月十五日，越南称为Tết Trung Nguyên（节中元）或Lễ Vu Lan（礼盂兰），韩国称为백중（百中/百种）或망혼일（亡魂日）或 중원（中元）。
中秋节，即农历八月十五日，越南称为Tết Trung Thu（节中秋），韩国称为추석（秋夕）。
下元节，即农历十月十五日，越南称为Tết Hạ Nguyên（节下元）。
腊月节日.
腊八节，即农历腊月（十二月）初八日。
祭灶节，亦称小年，即农历腊月廿三日（北方）或廿四日（南方），越南称为Tết Táo Quân（节灶君）。
除夕，正月初一前夕，即农历一年之最后一晚。
这三个节日可认为是准备和酝酿最大节日农历新年。
节气节日.
以节气定义的节日，通常都有很浓重的季节特征，大多在春分、秋分、夏至、冬至这种季节最为明显的节气附近，清明是紧接春分后第一个节气。
春季：
夏季：
秋季：
冬季：
各地使用.
其他东亚地区之阴阳合历大多源自华夏历法或受其影响，比如藏历、和历以及朝鲜半岛和越南历法等。目前，由于时区差别，大中华地区（UTC+8）、韩国（UTC+9）与越南（UTC+7）使用的农历的版本并不一致，因此各国农历日期也不完全一致。
最常见的情况是由于时差，朔的时刻在不同地区分属两日，导致农历相差一天。例如：1968年，南北越因时差问题分别在不同日期庆祝了越南新年。在极端情况下时差还会影响到置闰，导致不同地区农历在几个月内会相差一个月。
由于农历规定冬至日必须在冬月（十一月），由于时差原因，有时在一地朔的时刻和冬至时刻落在同一天，但在另一地朔的时刻和冬至时刻分属两天，这导致两地冬月相差一个月，并影响到置闰以及冬月附近的诸多月份。例如：1984年冬至在协调世界时12月21日16:09:12，对应北京时间12月22日00:09:12和越南时间12月21日23:09:12，两地不在同一公历日迎来冬至；而新月在协调世界时12月22日11:35:39，对应北京时间12月22日19:35:39、越南时间12月22日18:35:39，两地在同一公历日见证新月并迎来新的农历月份，导致两地冬月相差一个月————中国农历中的这个冬月对应公历1984年12月22日至1985年1月20日，越南历中的这个冬月对应公历1984年11月23日至12月21日。受此影响，中国农历在1984年置闰十月（对应公历11月23日至12月21日），但越南历则在1985年置闰二月（对应公历3月21日至4月19日）；也正因此，1985年越南新年在公历1月21日，而中国春节在公历2月20日。另外，由于农历规定若两冬月间不计冬月剩余12个月，则置闰于两冬月间第一个无中气之月。朔的时刻和其他中气时刻的关系也可能在一地为同一日，在另一地分为两日。这会导致两地对无中气之月的判定出现差异，同样可能影响置闰，并导致农历在几个月内相差一个月。例如2012年中国闰四月而韩国闰三月。部分软件未能因应各国时间基准而调整会造成错误。
紫金山天文台在2017年5月制定了名为GB/T 33661-2017 《农历的编算和颁行》的中华人民共和国国家标准。规定了现代农历编制的基础概念及算法规则，并以现代天文学技术为基础规定农历的编算方式，比如规定冬至为节气之首（而非立春）、规定有冬至之月份为子月（十一月）、规定寅月建正、规定采用国际通用天体模型且精度应达到1秒，并且要求公开发行的日历产品必须包含西历和农历的日期对照以及二十四节气，符合标准规定的编排规则、计算模型和精度及表示方法，以杜绝各种不同版本的农历出现在市面上引发日期不一致的混乱。该标准基本上继承古制，如寅月建正，冬至之月为子月等等。农历闰月的规则，是顺治二年历法改革时制定。应用UTC+8作标准时，则是民国十七年（1928年）制定的规则。
日本农历（和历）原使用中国历法计算，从明朝亡后之1685年开始自行编制历法（贞享历），直到1873年起废除农历（天保历）改用西历（格里历），并于1910年起停止在官历内并记旧历。台湾日治时期，日本政府曾委托东京天文台编纂农历，并由伊势神宫印制颁布《神宫历》于台湾发行。但由于文化习惯不同，到了1914年，台湾总督府决定另编一部《台湾民历》，委由台湾神苑会发行，其内容主要参照了神宫历，另外也加入了西历历法。不过，民间接受度最高的仍是自编的民历春牛图。目前日本国立天文台每年2月都会发报的「暦要项」官报中仍有节气和朔弦望等资料，能用来自行计算农历。现时日本国内仅有如中秋节等少量节日按农历庆祝，其余绝大多数原以农历日期庆祝之节日，都改成了按照西历之相同日期庆祝（如日本的端午节就在西历5月5日）。
绝大部分海外华人会使用和大中华地区一致的农历，但有些居于南半球的澳纽华侨会出版按当地时间所制作之历书，此等历书也会应当地季节而将节气错开半年。
中国传统历法的编制，以往是由太史寮、太史署、太史监、太史局、太史院、司天台、司天监、钦天监等在中国各朝代职掌天文历法的机构所主管。当代农历的编制则是由现代天文机构负责，如中央观象台（北洋政府）、中研院天文研究所（国民政府）、紫金山天文台（中国大陆）、香港天文台（香港），以及中央气象署天文站（台湾）。现代天文机构会因应国际天文学联合会的最新决议，并根据美国喷射推进实验室、美国海军天文台、等机构提供的资料，作出精准计算以修正年历。有时候因朔日、节气发生时刻接近午夜，只要计算结果相差几分钟，和民间《万年历》的日期就有可能会相差一天。