商代已有較完善的歷法,即為商歷。總的說來,是以幹支紀日,以太陰(月)紀月,以太陽紀年,用閏月來調整季節。這是壹種陰陽合歷。平年十二個月,閏年十三個月,年終置閏,叫做十三月。月有大小,大月三十日,小月二十九日。商朝後期,也在年中置閏。用幹支紀日,就是用十幹和十二支相配合,以紀日期。六十日為壹個周期。在甲骨文中發現有完整的幹支表,這是我國最早的幹支記錄。甲骨文中已有“今春。、“今秋”和“日至”的記載,當時已有季節的劃分,可能有了二分(春分、秋分)、二至(夏至、年至)。商代的天文學和歷法的進步,與農業生產有密切關系。
周歷,古代歷法之壹,以建子之月(即夏歷的十壹月)為歲首.
春秋戰國時代有所謂夏歷、殷歷和周歷,三者主要的區別在於歲首的月建不同,所以又叫做三正。周歷以通常冬至所在的建子之月(即夏歷的十壹月)為歲首,殷歷以建醜之月(即夏歷的十二月)為歲首,夏歷以建寅之月(即後世通常所說的陰歷正月)為歲首。周歷比殷歷早壹個月,比夏歷早兩個月。由於三正歲首的月建不同,四季也就隨之而異。夏殷周三正是春秋戰國時代不同地區所使用的不同的歷日制度,我們閱讀先秦古籍有必要了解三正的差異,因為先秦古籍所據以紀時的歷日制度並不統壹。舉例來說,《春秋》和《孟子》多用周歷,《楚辭》和《呂氏春秋》用夏歷。《詩經》要看具體詩篇,例如《小雅·四月》用夏歷,《豳風·七月》就是夏歷和周歷並用,凡言“七月”指夏歷,“壹之日”等處指周歷。