日食和月食统称交食。交食既与月亮运动有关,又与太阳运动有关,交食预报的准确与否,就成为检验历法优劣的重要标准。“效历之要,要在日食”(《晋书·律历志》),所表达的就是这个意思。
历代历法家都公认并运用这个标准,从而在客观上承认了日月食是有规律可循的。但与此同时,总有占星家借天文官员预报不准的机会,把日食月食神秘化,以示天意所为。这说明了日月食的规律很复杂,不是短时期观测就能掌握的。
日食必定发生在朔,月食必定发生在望,但并不是所有的朔望都发生交食。道理很简单,因为月亮视轨道与太阳视轨道有一个5°09′的夹角,而太阳、月亮的最大角直径分别是32′32″和33′26″。当日月在同黄经位置上临近相交时,日月中心距为33′左右。这就是说,当日月中心距大于33\'时,即使在朔望位置也不会发生交食。日月中心距的大小与日月离轨道交点的距离直接相关,日月临界时离交点的距离,通常作为判断交食与否的条件,这个界限称为食限。东汉乾象历曾以黄经15.5度为日食发生的判据,与现代值相差不远,被后代许多历法所采用。
经验在不断积累,认识在不断提高。西汉三统历统计出,135个朔望月里大约有23次交食,而且135个朔望月以后发生的交食,其次序和间隔都会极相似地重复一遍。这是中国关于交食周期的首次记载。太阳连续两次通过黄白交点的时间间隔叫做交点年。古人认识到,既然交食必须满足朔望和在交点附近两个条件,那么交食周期一定和朔望月、交点年有密切的联系。事实正是如此,从数学上分析,交食周期应该是朔望月和交点年的最小公倍数。但由于朔望月和交点年都不是整数值,不容易得到准确的交食周期。所以中国古代仅有一个近似的计算方法。宋代统天历计算出交食周期为223个朔望月,与19个交点年相差0.46日,相当于古巴比伦人的沙罗周期。唐代的五纪历计算出交食周期为358个朔望月,与30.5个交点年相差仅0.04日。西方到了19世纪才达到这样的精度。