In ancient time, Chinese calendars were made based on astronomical observations. In the Spring and Autumn period (722 BCE – 481 BCE), people developed a simple method to predict the moon phases. Calendars began to be calculated in advance. China was divided into many states at that time and each state used its own calendar. Unfortunately, none of these calendars is preserved. Today we only have fragmented information about the calendar used by the Lu state from the chronicle Chunqiu (《春秋》) revised by Confucius. This calendar is called Chunqiu here.
Here I describe the Chunqiu calendar reconstructed using the method and table in Section 3.5 of the book Zhōng Guó Gǔ Dài Lì Fǎ (《中国古代历法》 or Ancient Chinese Calendars and Almanacs) written by Zhāng Péiyú (張培瑜), Chén Měidōng (陳美東), Bó Shùrén (薄樹人), and Hú Tiězhū (胡鐵珠), published by China Science Press (Beijing) in March 2008. Hereafter, I will refer to the book as Ancient Chinese Calendars and Almanacs. According to the preface, chapters in the book were written separately by the four authors. Chapter 3 was written by Zhāng Péiyú, a researcher in the Purple Mountain Observatory in Nanjing, China.
According to Zhāng's research, the lunar cycle adopted by the Chunqiu calendar was between 29.5306703 days and 29.5306755 days. For practical calculation, the number 30328/1027 days = (29 + 545/1027) days = 29.53067186 days may be used. This number is quite close to the lunar cycle at that time (29.530583 days) and is more accurate than (29 + 499/940) days adopted by the calendars in the Warring States period (480 BCE – 222 BCE). The accumulated error of the adopted lunar cycle would reach one day in 900 years. Chinese calendars before the 7th century CE used píngshuò for the calculation of lunar conjunction, which only takes into account the mean motions of the moon and Sun. If we know a particular conjunction time, the other conjunction times can be determined by simply adding integral multiples of the adopted lunar cycle.
For convenience, I use the notation Ny to denote the year of the Chunqiu calendar whose New Year day was closest to January 1 of the proleptic Julian calendar of year y. For example, N-721 began on January 16, -721 (722 BCE) and ended on January 4, -720. According to Zhāng's reconstructed Chunqiu calendar, the predicted lunar conjunction time associated with the New Year day of N-721 occurred on the first xīn sì (sexagenary) day after the winter solstice. The conjunction time was 268/1027 days from the midnight. Expressed in the Western calendar and the modern time system, the conjunction time was on January 16, -721 at 06:16. In ancient time, it was not known that different places had different local times. We can regard the time as being the local time in the state of Lu, whose capital was at the present-day city Qūfù in Shāndōng province in northeast China.
Decimals were not used in the calendar calculations in ancient China. The fractional part of a number was called xiǎoyú (小餘) and was usually expressed as a fraction. "Fractional day" may be used as an English translation of xiǎoyú. As a result, 268/1027 was the xiǎoyú of the conjunction time. The denominator 1027 is usually omitted and we simply refer the number 268 as the xiǎoyú. Xiǎoyú can be thought of as the time in the day expressed as a fraction of a day. Using today's 24-hour system, a xiǎoyú of 268/1027 is the same 6:15:46. According to the píngshuò rule, the next conjunction would occur (29 + 545/1027) days later, which was (268/1027 + 29 + 545/1027) days, or (29 + 813/1027) days from the midnight of the first conjunction day. Here the integer part was 29 and xiǎoyú was 813. The sexagenary day cycle was 29 days after xīn sì. The cycle of the heavenly stems is 10 and the cycle of earthly branches is 12. Since 29 = 30-1, the heavenly stem was one stem before xīn, which was gēng; mod(29, 12) = 5 and so the earthly branch was 5 branches after sì, which was xū. Here mod(X, Y) denotes the remainder of X divided by Y. The sexagenary day of the first day of month 2 was gēng xū. It is also easy to calculate the date in the proleptic Julian calendar: January (16+29) = February (16+29-31) = February 14.
In general, the lunar conjunction times predicted by the Chunqiu calendar are given by the following formula.
Mi = M0 + i (29 + 545/1027) days (1)
Here M0 is a particular lunar conjunction time, which we will take as the conjunction time associated with the New Year day of N-721, i is the number of accumulated months from M0. Let A(y) be the accumulated months associated with the New Year day of Ny. Then the conjunction time associated with the New Year day is given by
Z(y) = M0 + A(y) (29 + 545/1027) days (2)
Once we know A(y), other months in Ny can be obtained by adding integer multiples of (29 + 545/1027) days. The accumulated months A(y) can be calculated by a recurrence relation. Suppose there was no leap month in Ny, then A(y+1) = A(y) + 12. If, on the other hand, there was a leap month in Ny, then A(y+1) = A(y) + 13. By definition, A(-721) = 0. Hence, if we know all the leap months in the Chunqiu calendar, we can easily reconstruct the calendar in any given year.
Leap Months and Accumulated Months
There was no fixed rule for inserting the leap months in the Chunqiu calendar. Instead, the insertion of leap months was determined by astronomical observations. Leap months in the Chunqiu calendar can only be inferred from the chronicle Chunqiu. Based on his research and studies of other scholars, Zhāng constructed a table of the New Year days in the Chunqiu calendar. The table was reproduced in Table 3-7 of Ancient Chinese Calendars and Almanacs. Table 3-7 lists the sexagenary days of the New Year days, the jiàn (i.e. the branch name, see sexagenary cycle page) of the first month, the xiǎoyú of the conjunction associated with the New Year day, the dates of winter solstices in proleptic Julian calendar, and also the Chunqiu calendar data reconstructed by Wáng Tāo (王韜), a scholar in the 19th century, for comparison. It is possible to determine if there was leap month from Table 3-7. The simplest method is to compare the xiǎoyús in two successive years.
As mentioned above, xiǎoyú is the conjunction time expressed as a fraction of a day from midnight, with the denominator 1027 omitted. If there was no leap month in Ny, the xiǎoyú of the new year conjunction K(y) is related to the xiǎoyú of the new year conjunction in Ny+1, K(y+1), by the following equation. K(y+1) = mod(K(y) + 12×545, 1027) = mod(K(y) + 378, 1027) (3) If there was a leap month in Ny, then K(y+1) = mod(K(y) + 13×545, 1027) = mod(K(y) - 104, 1027) (4) We can use these two equations to determine from Table 3-7 whether or not a given year had a leap month. The accumulated months A(y) can then be calculated from the recurrence relation mentioned above. The result is listed in the following table, which also lists the jiàn of the first month, the sexagenary day cycle of the New Year day, the date in the proleptic Julian calendar, and the xiǎoyú of the new year day conjunction.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-721
0
chǒu
Xīn sì
Jan. 16, 722 BCE
268
*N-720
12
chǒu
Yǐ hài
Jan. 5, 721 BCE
646
N-719
25
chǒu
Jǐ hài
Jan. 23, 720 BCE
542
N-718
37
chǒu
Guǐ sì
Jan. 12, 719 BCE
920
*N-717
49
chǒu
Wù zǐ
Jan. 2, 718 BCE
271
N-716
62
chǒu
Rén zǐ
Jan. 21, 717 BCE
167
*N-715
74
chǒu
Bǐng wǔ
Jan. 9, 716 BCE
545
N-714
87
yín
Gēng wǔ
Jan. 28, 715 BCE
441
*N-713
99
chǒu
Jiǎ zǐ
Jan. 17, 714 BCE
819
N-712
112
yín
Wù zǐ
Feb. 5, 713 BCE
715
N-711
124
chǒu
Guǐ wèi
Jan. 25, 712 BCE
66
*N-710
136
chǒu
Dīng chǒu
Jan. 14, 711 BCE
444
N-709
149
yín
Xīn chǒu
Feb. 2, 710 BCE
340
N-708
161
chǒu
Yǐ wèi
Jan. 22, 709 BCE
718
*N-707
173
chǒu
Gēng yín
Jan. 11, 708 BCE
69
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-706
186
yín
Guǐ chǒu
Jan. 29, 707 BCE
992
N-705
198
chǒu
Wù shēn
Jan. 19, 706 BCE
343
*N-704
210
chǒu
Rén yín
Jan. 8, 705 BCE
721
N-703
223
chǒu
Bǐng yín
Jan. 26, 704 BCE
617
N-702
235
chǒu
Gēng shēn
Jan. 15, 703 BCE
995
*N-701
247
chǒu
Yǐ mǎo
Jan. 5, 702 BCE
346
N-700
260
chǒu
Jǐ mǎo
Jan. 24, 701 BCE
242
*N-699
272
chǒu
Guǐ yǒu
Jan. 12, 700 BCE
620
N-698
285
yín
Dīng yǒu
Jan. 31, 699 BCE
516
N-697
297
chǒu
Xīn mǎo
Jan. 20, 698 BCE
894
N-696
309
chǒu
Bǐng xū
Jan. 10, 697 BCE
245
*N-695
321
chǒu
Gēng chén
Dec. 29, 697 BCE
623
N-694
334
chǒu
Jiǎ chén
Jan. 17, 695 BCE
519
N-693
346
chǒu
Wù xū
Jan. 6, 694 BCE
897
*N-692
358
zǐ
Guǐ sì
Dec. 27, 694 BCE
248
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-691
371
chǒu
Dīng sì
Jan. 14, 692 BCE
144
*N-690
383
chǒu
Xīn hài
Jan. 3, 691 BCE
522
N-689
396
chǒu
Yǐ hài
Jan. 22, 690 BCE
418
N-688
408
chǒu
Jǐ sì
Jan. 11, 689 BCE
796
N-687
420
chǒu
Jiǎ zǐ
Dec. 31, 689 BCE
147
*N-686
432
zǐ
Wù wǔ
Dec. 20, 688 BCE
525
N-685
445
chǒu
Rén wǔ
Jan. 8, 686 BCE
421
N-684
457
zǐ
Bǐng zǐ
Dec. 28, 686 BCE
799
N-683
469
zǐ
Xīn wèi
Dec. 17, 685 BCE
150
N-682
481
zǐ
Yǐ chǒu
Dec. 6, 684 BCE
528
*N-681
493
hài
Jǐ wèi
Nov. 25, 683 BCE
906
*N-680
506
zǐ
Guǐ wèi
Dec. 14, 682 BCE
802
N-679
519
chǒu
Dīng wèi
Jan. 1, 680 BCE
698
*N-678
531
zǐ
Rén yín
Dec. 22, 680 BCE
49
*N-677
544
chǒu
Yǐ chǒu
Jan. 9, 678 BCE
972
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-676
557
yín
Jǐ chǒu
Jan. 28, 677 BCE
868
N-675
569
chǒu
Jiǎ shēn
Jan. 17, 676 BCE
219
*N-674
581
chǒu
Wù yín
Jan. 6, 675 BCE
597
N-673
594
chǒu
Rén yín
Jan. 25, 674 BCE
493
N-672
606
chǒu
Bǐng shēn
Jan. 14, 673 BCE
871
N-671
618
chǒu
Xīn mǎo
Jan. 3, 672 BCE
222
*N-670
630
zǐ
Yǐ yǒu
Dec. 23, 672 BCE
600
N-669
643
chǒu
Jǐ yǒu
Jan. 11, 670 BCE
496
N-668
655
chǒu
Guǐ mǎo
Dec. 31, 670 BCE
874
*N-667
667
zǐ
Wù xū
Dec. 20, 669 BCE
225
N-666
680
chǒu
Rén xū
Jan. 8, 667 BCE
121
*N-665
692
zǐ
Bǐng chén
Dec. 28, 667 BCE
499
N-664
705
chǒu
Gēng chén
Jan. 16, 665 BCE
395
N-663
717
chǒu
Jiǎ xū
Jan. 4, 664 BCE
773
*N-662
729
zǐ
Jǐ sì
Dec. 25, 664 BCE
124
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-661
742
chǒu
Guǐ sì
Jan. 13, 662 BCE
20
N-660
754
chǒu
Dīng hài
Jan. 2, 661 BCE
398
*N-659
766
zǐ
Xīn sì
Dec. 21, 661 BCE
776
*N-658
779
chǒu
Yǐ sì
Jan. 9, 659 BCE
672
N-657
792
yín
Jǐ sì
Jan. 28, 658 BCE
568
N-656
804
chǒu
Guǐ hài
Jan. 17, 657 BCE
946
N-655
816
chǒu
Wù wǔ
Jan. 6, 656 BCE
297
N-654
828
zǐ
Rén zǐ
Dec. 26, 656 BCE
675
N-653
840
zǐ
Dīng wèi
Dec. 16, 655 BCE
26
*N-652
852
zǐ
Xīn chǒu
Dec. 5, 654 BCE
404
N-651
865
zǐ
Yǐ chǒu
Dec. 23, 653 BCE
300
*N-650
877
zǐ
Jǐ wèi
Dec. 12, 652 BCE
678
N-649
890
chǒu
Guǐ wèi
Dec. 31, 651 BCE
574
*N-648
902
zǐ
Dīng chǒu
Dec. 20, 650 BCE
952
N-647
915
chǒu
Xīn chǒu
Jan. 7, 648 BCE
848
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-646
927
chǒu
Bǐng shēn
Dec. 28, 648 BCE
199
N-645
940
chǒu
Gēng shēn
Jan. 16, 646 BCE
95
N-644
952
chǒu
Jiǎ yín
Jan. 5, 645 BCE
473
N-643
964
zǐ
Wù shēn
Dec. 24, 645 BCE
851
*N-642
976
zǐ
Guǐ mǎo
Dec. 14, 644 BCE
202
N-641
989
chǒu
Dīng mǎo
Jan. 2, 642 BCE
98
*N-640
1001
zǐ
Xīn yǒu
Dec. 22, 642 BCE
476
N-639
1014
chǒu
Yǐ yǒu
Jan. 9, 640 BCE
372
N-638
1026
chǒu
Jǐ mǎo
Dec. 29, 640 BCE
750
N-637
1038
zǐ
Jiǎ xū
Dec. 19, 639 BCE
101
*N-636
1050
zǐ
Wù chén
Dec. 8, 638 BCE
479
N-635
1063
zǐ
Rén chén
Dec. 26, 637 BCE
375
*N-634
1075
zǐ
Bǐng xū
Dec. 15, 636 BCE
753
N-633
1088
chǒu
Gēng xū
Jan. 3, 634 BCE
649
N-632
1100
zǐ
Yǐ sì
Dec. 24, 634 BCE
0
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-631
1112
zǐ
Jǐ hài
Dec. 12, 633 BCE
378
N-630
1124
zǐ
Guǐ sì
Dec. 1, 632 BCE
756
*N-629
1136
hài
Wù zǐ
Nov. 21, 631 BCE
107
N-628
1149
zǐ
Rén zǐ
Dec. 10, 630 BCE
3
N-627
1161
hài
Bǐng wǔ
Nov. 28, 629 BCE
381
*N-626
1173
hài
Gēng zǐ
Nov. 17, 628 BCE
759
*N-625
1186
zǐ
Jiǎ zǐ
Dec. 6, 627 BCE
655
N-624
1199
zǐ
Wù zǐ
Dec. 25, 626 BCE
551
*N-623
1211
zǐ
Rén wǔ
Dec. 13, 625 BCE
929
N-622
1224
chǒu
Bǐng wǔ
Jan. 1, 623 BCE
825
N-621
1236
zǐ
Xīn chǒu
Dec. 22, 623 BCE
176
*N-620
1248
zǐ
Yǐ wèi
Dec. 11, 622 BCE
554
N-619
1261
chǒu
Jǐ wèi
Dec. 29, 621 BCE
450
N-618
1273
zǐ
Guǐ chǒu
Dec. 18, 620 BCE
828
*N-617
1285
zǐ
Wù shēn
Dec. 8, 619 BCE
179
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-616
1298
zǐ
Rén shēn
Dec. 27, 618 BCE
75
N-615
1310
zǐ
Bǐng yín
Dec. 15, 617 BCE
453
*N-614
1322
zǐ
Gēng shēn
Dec. 4, 616 BCE
831
N-613
1335
zǐ
Jiǎ shēn
Dec. 23, 615 BCE
727
N-612
1347
zǐ
Jǐ mǎo
Dec. 13, 614 BCE
78
*N-611
1359
zǐ
Guǐ yǒu
Dec. 1, 613 BCE
456
N-610
1372
zǐ
Dīng yǒu
Dec. 20, 612 BCE
352
N-609
1384
zǐ
Xīn mǎo
Dec. 9, 611 BCE
730
*N-608
1396
hài
Bǐng xū
Nov. 29, 610 BCE
81
N-607
1409
zǐ
Jǐ yǒu
Dec. 16, 609 BCE
1004
N-606
1421
zǐ
Jiǎ chén
Dec. 6, 608 BCE
355
N-605
1433
hài
Wù xū
Nov. 25, 607 BCE
733
*N-604
1445
hài
Guǐ sì
Nov. 15, 606 BCE
84
N-603
1458
zǐ
Bǐng chén
Dec. 2, 605 BCE
1007
*N-602
1470
hài
Xīn hài
Nov. 22, 604 BCE
358
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-601
1483
zǐ
Yǐ hài
Dec. 11, 603 BCE
254
N-600
1496
chǒu
Jǐ hài
Dec. 30, 602 BCE
150
N-599
1508
zǐ
Guǐ sì
Dec. 18, 601 BCE
528
*N-598
1520
zǐ
Dīng hài
Dec. 7, 600 BCE
906
N-597
1533
zǐ
Xīn hài
Dec. 26, 599 BCE
802
N-596
1545
zǐ
Bǐng wǔ
Dec. 16, 598 BCE
153
*N-595
1557
zǐ
Gēng zǐ
Dec. 4, 597 BCE
531
N-594
1570
zǐ
Jiǎ zǐ
Dec. 23, 596 BCE
427
*N-593
1582
zǐ
Wù wǔ
Dec. 12, 595 BCE
805
N-592
1595
chǒu
Rén wǔ
Dec. 31, 594 BCE
701
N-591
1607
zǐ
Dīng chǒu
Dec. 20, 593 BCE
52
N-590
1619
zǐ
Xīn wèi
Dec. 9, 592 BCE
430
*N-589
1631
zǐ
Yǐ chǒu
Nov. 28, 591 BCE
808
N-588
1644
zǐ
Jǐ chǒu
Dec. 17, 590 BCE
704
N-587
1656
zǐ
Jiǎ shēn
Dec. 6, 589 BCE
55
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-586
1668
hài
Wù yín
Nov. 25, 588 BCE
433
N-585
1681
zǐ
Rén yín
Dec. 14, 587 BCE
329
N-584
1693
zǐ
Bǐng shēn
Dec. 3, 586 BCE
707
*N-583
1705
hài
Xīn mǎo
Nov. 22, 585 BCE
58
N-582
1718
zǐ
Jiǎ yín
Dec. 10, 584 BCE
981
N-581
1730
zǐ
Jǐ yǒu
Nov. 30, 583 BCE
332
*N-580
1742
hài
Guǐ mǎo
Nov. 19, 582 BCE
710
N-579
1755
zǐ
Dīng mǎo
Dec. 7, 581 BCE
606
*N-578
1767
hài
Xīn yǒu
Nov. 26, 580 BCE
984
*N-577
1780
zǐ
Yǐ yǒu
Dec. 15, 579 BCE
880
N-576
1793
chǒu
Jǐ yǒu
Jan. 3, 577 BCE
776
N-575
1805
zǐ
Jiǎ chén
Dec. 23, 577 BCE
127
N-574
1817
zǐ
Wù xū
Dec. 12, 576 BCE
505
*N-573
1829
zǐ
Rén chén
Dec. 1, 575 BCE
883
N-572
1842
zǐ
Bǐng chén
Dec. 20, 574 BCE
779
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-571
1854
zǐ
Xīn hài
Dec. 9, 573 BCE
130
N-570
1867
chǒu
Yǐ hài
Dec. 28, 572 BCE
26
N-569
1879
zǐ
Jǐ sì
Dec. 17, 571 BCE
404
*N-568
1891
zǐ
Guǐ hài
Dec. 6, 570 BCE
782
N-567
1904
zǐ
Dīng hài
Dec. 24, 569 BCE
678
N-566
1916
zǐ
Rén wǔ
Dec. 14, 568 BCE
29
*N-565
1928
zǐ
Bǐng zǐ
Dec. 3, 567 BCE
407
N-564
1941
zǐ
Gēng zǐ
Dec. 22, 566 BCE
303
N-563
1953
zǐ
Jiǎ wǔ
Dec. 10, 565 BCE
681
*N-562
1965
zǐ
Jǐ chǒu
Nov. 30, 564 BCE
32
N-561
1978
zǐ
Rén zǐ
Dec. 18, 563 BCE
955
*N-560
1990
zǐ
Dīng wèi
Dec. 8, 562 BCE
306
N-559
2003
zǐ
Xīn wèi
Dec. 26, 561 BCE
202
N-558
2015
zǐ
Yǐ chǒu
Dec. 15, 560 BCE
580
N-557
2027
zǐ
Jǐ wèi
Dec. 4, 559 BCE
958
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-556
2039
hài
Jiǎ yín
Nov. 24, 558 BCE
309
N-555
2052
zǐ
Wù yín
Dec. 12, 557 BCE
205
N-554
2064
zǐ
Rén shēn
Dec. 1, 556 BCE
583
*N-553
2076
hài
Bǐng yín
Nov. 20, 555 BCE
961
*N-552
2089
zǐ
Gēng yín
Dec. 9, 554 BCE
857
N-551
2102
chǒu
Jiǎ yín
Dec. 27, 553 BCE
753
N-550
2114
zǐ
Jǐ yǒu
Dec. 17, 552 BCE
104
*N-549
2126
zǐ
Guǐ mǎo
Dec. 6, 551 BCE
482
N-548
2139
zǐ
Dīng mǎo
Dec. 25, 550 BCE
378
N-547
2151
zǐ
Xīn yǒu
Dec. 13, 549 BCE
756
N-546
2163
zǐ
Bǐng chén
Dec. 3, 548 BCE
107
*N-545
2175
hài
Gēng xū
Nov. 22, 547 BCE
485
*N-544
2188
zǐ
Jiǎ xū
Dec. 11, 546 BCE
381
N-543
2201
chǒu
Wù xū
Dec. 29, 545 BCE
277
N-542
2213
zǐ
Rén chén
Dec. 18, 544 BCE
655
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-541
2225
zǐ
Dīng hài
Dec. 8, 543 BCE
6
*N-540
2237
hài
Xīn sì
Nov. 27, 542 BCE
384
N-539
2250
zǐ
Yǐ sì
Dec. 15, 541 BCE
280
*N-538
2262
zǐ
Jǐ hài
Dec. 4, 540 BCE
658
N-537
2275
zǐ
Guǐ hài
Dec. 23, 539 BCE
554
N-536
2287
zǐ
Dīng sì
Dec. 12, 538 BCE
932
*N-535
2299
zǐ
Rén zǐ
Dec. 1, 537 BCE
283
N-534
2312
zǐ
Bǐng zǐ
Dec. 20, 536 BCE
179
*N-533
2324
zǐ
Gēng wǔ
Dec. 9, 535 BCE
557
N-532
2337
chǒu
Jiǎ wǔ
Dec. 28, 534 BCE
453
N-531
2349
zǐ
Wù zǐ
Dec. 16, 533 BCE
831
*N-530
2361
zǐ
Guǐ wèi
Dec. 6, 532 BCE
182
N-529
2374
zǐ
Dīng wèi
Dec. 25, 531 BCE
78
N-528
2386
zǐ
Xīn chǒu
Dec. 14, 530 BCE
456
N-527
2398
zǐ
Yǐ wèi
Dec. 2, 529 BCE
834
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
*N-526
2410
hài
Gēng yín
Nov. 22, 528 BCE
185
N-525
2423
zǐ
Jiǎ yín
Dec. 11, 527 BCE
81
*N-524
2435
zǐ
Wù shēn
Nov. 30, 526 BCE
459
N-523
2448
zǐ
Rén shēn
Dec. 18, 525 BCE
355
*N-522
2460
zǐ
Bǐng yín
Dec. 7, 524 BCE
733
N-521
2473
zǐ
Gēng yín
Dec. 26, 523 BCE
629
*N-520
2485
zǐ
Jiǎ shēn
Dec. 15, 522 BCE
1007
N-519
2498
chǒu
Wù shēn
Jan. 2, 520 BCE
903
N-518
2510
zǐ
Guǐ mǎo
Dec. 23, 520 BCE
254
N-517
2522
zǐ
Dīng yǒu
Dec. 12, 519 BCE
632
*N-516
2534
zǐ
Xīn mǎo
Dec. 1, 518 BCE
1010
N-515
2547
zǐ
Yǐ mǎo
Dec. 19, 517 BCE
906
N-514
2559
zǐ
Gēng xū
Dec. 9, 516 BCE
257
*N-513
2571
zǐ
Jiǎ chén
Nov. 28, 515 BCE
635
*N-512
2584
zǐ
Wù chén
Dec. 17, 514 BCE
531
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-511
2597
chǒu
Rén chén
Jan. 4, 512 BCE
427
N-510
2609
zǐ
Bǐng xū
Dec. 24, 512 BCE
805
N-509
2621
zǐ
Xīn sì
Dec. 14, 511 BCE
156
N-508
2633
zǐ
Yǐ hài
Dec. 3, 510 BCE
534
*N-507
2645
hài
Jǐ sì
Nov. 21, 509 BCE
912
N-506
2658
zǐ
Guǐ sì
Dec. 10, 508 BCE
808
*N-505
2670
zǐ
Wù zǐ
Nov. 30, 507 BCE
159
N-504
2683
zǐ
Rén zǐ
Dec. 19, 506 BCE
55
*N-503
2695
zǐ
Bǐng wǔ
Dec. 7, 505 BCE
433
N-502
2708
zǐ
Gēng wǔ
Dec. 26, 504 BCE
329
N-501
2720
zǐ
Jiǎ zǐ
Dec. 15, 503 BCE
707
N-500
2732
zǐ
Jǐ wèi
Dec. 5, 502 BCE
58
*N-499
2744
hài
Guǐ chǒu
Nov. 23, 501 BCE
436
N-498
2757
zǐ
Dīng chǒu
Dec. 12, 500 BCE
332
*N-497
2769
zǐ
Xīn wèi
Dec. 1, 499 BCE
710
* There was a leap month in this year.
Chunqiu Cal. year
Acc. months
Jiàn
Sexagenary date
Julian Cal. Date
Xiǎoyú
N-496
2782
zǐ
Yǐ wèi
Dec. 20, 498 BCE
606
*N-495
2794
zǐ
Jǐ chǒu
Dec. 8, 497 BCE
984
N-494
2807
chǒu
Guǐ chǒu
Dec. 27, 496 BCE
880
N-493
2819
zǐ
Wù shēn
Dec. 17, 495 BCE
231
*N-492
2831
zǐ
Rén yín
Dec. 6, 494 BCE
609
N-491
2844
zǐ
Bǐng yín
Dec. 24, 493 BCE
505
N-490
2856
zǐ
Gēng shēn
Dec. 13, 492 BCE
883
*N-489
2868
zǐ
Yǐ mǎo
Dec. 3, 491 BCE
234
N-488
2881
zǐ
Jǐ mǎo
Dec. 22, 490 BCE
130
*N-487
2893
zǐ
Guǐ yǒu
Dec. 10, 489 BCE
508
N-486
2906
chǒu
Dīng yǒu
Dec. 29, 488 BCE
404
N-485
2918
zǐ
Xīn mǎo
Dec. 18, 487 BCE
782
*N-484
2930
zǐ
Bǐng xū
Dec. 8, 486 BCE
133
N-483
2943
zǐ
Gēng xū
Dec. 26, 485 BCE
29
N-482
2955
zǐ
Jiǎ chén
Dec. 15, 484 BCE
407
* There was a leap month in this year.
Once A(y) is known, it is very easy to compute the Chunqiu calendar. The data in other columns are also easy to reproduce, except in some cases the jiàn of the first month. Here I demonstrate the calculation by an example for the year N-649. From the table above, A(-649) = 890. It follows that the number of days between the new year day conjunction time in N-649 and midnight of Jan. 16, 722 BCE was [268/1027 + 890×(29 + 545/1027)] days= (26282 + 574/1027) days. The integer part was 26282 and the xiǎoyú was 574, consistent with the xiǎoyú listed in the table. It is easy to calculate the sexagenary day cycle using modular arithmetic: the heavenly stems have a cycle of 10 days and the earthly branches have a cycle of 12 days. Simple calculation shows that 26282 days after xīn sì was guǐ wèi, which is also the same as the one listed in the table. The New Year day in the proleptic Julian calendar can be determined by first computing the number of days between Jan. 16, -721 and Jan. 16, -649. There are 72 years between -721 and -649. Years divisible by 4 have 366 days and others have 365 days. The leap years between -721 and -649 were -720, -716, ..., and -652, a total of 18 leap years. Hence the number of days between Jan. 16, -721 and Jan. 16, -649 was (72×365 + 18) = 26298 days = (26282 + 16) days. This means that the New Year day of N-649 was 16 days before Jan. 16, -649, which was Dec. 31, -650 and agrees with the date listed in the table. As for the jiàn, the zǐ month is defined to be the month that contains the winter solstice (see sexagenary cycle page). The winter solstice in -650 can be looked up from the Sun & Moon phenomena page and it was on Dec. 28 in the proleptic Julian calendarfn1. The New Year day was 3 days after the winter solstice. Thus the previous month was the zǐ month and the first month of N-649 was one month after the zǐ month, so it was the chǒu month. This also agrees with the jiàn listed in the table.
Now that we know the New Year day of N-649, the first days of the other months in the year can be calculated by adding (29 + 545/1027) days successively to the time of the new year day conjunction. There was no leap month in N-649 according to the table. The first days of each of the 12 months in N-649 are listed in the following table.
Month in the Chunqiu Cal.
First day in Jul. Cal.
Sexagenary Day
Xiǎoyú
1 (L)
Dec. 31, 651 BCE
Guǐ Wèi
574
2 (S)
Jan. 30, 650 BCE
Guǐ Chǒu
92
3 (L)
Feb. 28
Rén Wǔ
637
4 (S)
Mar. 30
Rén Zǐ
155
5 (L)
Apr. 28
Xīn Sì
700
6 (S)
May 28
Xīn Hài
218
7 (L)
June 26
Gēng Chén
763
8 (S)
July 26
Gēng Xū
281
9 (L)
Aug. 24
Jǐ Mǎo
826
10 (S)
Sep. 23
Jǐ Yǒu
344
11 (L)
Oct. 22
Wù Yín
889
12 (S)
Nov. 21
Wù Shēn
407
In the table, L means the month had 30 days (long month); S means the month had 29 days (short months). The number of days in a month is determined by the number of days between two successive lunar conjunctions, which can be calculated easily by the xiǎoyú. There is a simple relationship between the xiǎoyús of two successive months: the xiǎoyú of a month is equal to the xiǎoyú of the previous month plus 545, and then subtract 1027 if necessary. It is probably easier to understand the logic using today's 24-hour time system. The lunar cycle is 29 days 12 hours 44 minutes and 10 seconds. The time in the day of a conjunction can be obtained by adding 12 hours 44 minutes and 10 seconds from the previous conjunction time. If the number exceeds 24, subtract 24 from it. If the xiǎoyú of a month is smaller than 482, adding 545 to it will result in a number smaller than 1027. The number of days in the month will be 29 in this case and the month is a short month. If the xiǎoyú of the month is equal to or greater than 482, adding 545 to it will result in a number that is at least 1027 and the number has to be subtracted by 1027 to get the xiǎoyú of the following month. There will be 30 days in the month in this case. The conclusion is that a month with xiǎoyú less than 482 has 29 days and a month with xiǎoyú ≥482 has 30 days. It is also easy to show that if xiǎoyú exceeds 963, there will be two long months in a row. It is impossible to have two successive short months in the Chunqiu calendar. Since the synodic month is slightly greater than 29.5 days, it is in general impossible to have two successive short months for calendars based on the píngshuò algorithm.
Typos in Table 3-7 in Ancient Chinese Calendars and Almanacs
I used the calculated A(y) to compute the sexagenary cycle of the New Year day and the jiàn of the first month in each year, and then compared with those listed in Table 3-7 in Ancient Chinese Calendars and Almanacs. I find agreement in most years, but there are discrepancies in 5 years. After further analysis, I find that the data in Table 3-7 for those 5 years are inconsistent with the xiǎoyús, which means that at least one of them is incorrect. My analysis suggests that the data should be corrected as shown below.
Year
Correction to Table 3-7 in Ancient Chinese Calendars and Almanacs
N-720
Sexagenary day: Jǐ Hài (己亥) → Yǐ Hài (乙亥)
N-681
Jiàn: Chǒu → Hài
N-680
Jiàn: Yín → Zǐ
N-653
Sexagenary day: Bǐng Wǔ → Dīng Wèi
N-623
Xiǎoyú: 614 → 929
Let's look at each of them. The typo in N-720 is easy to see. If there was no leap month in N-721, the xiǎoyú of the new year day conjunction in N-720 would be 646, which agrees with Table 3-7, but the sexagenary day would be yǐ hài. If there was a leap month in N-721, the xiǎoyú would be 164, which disagrees with the value listed in Table 3-7, and the sexagenary day cycle would be yǐ sì. Therefore, the sexagenary day would not be jǐ hài no matter whether there was a leap month in N-721. Clearly, jǐ hài is a typo.
Comparing the xiǎoyús between N-682 and N-681, I conclude that there was no leap month in N-682 and the New Year day of N-681 was Nov. 25, -682 in the proleptic Julian calendar. This was clearly before the winter solstice, which occurred on Dec. 28 in -682. Hence, it is impossible for the first month to be a chǒu month. There was 33 days before Nov. 25 and Dec. 28, which also makes it impossible for the jiàn to be zǐ. The first month was clearly a month before the zǐ month, making the jiàn to be hài. The sexagenary day of Nov. 25, -682 was jǐ wèi, which agrees with Table 3-7. The sexagenary day of the first day of the chǒu month was also jǐ wèi. However, there would be a serious problem if the jiàn ware really chǒu. In addition to the discrepancy of the xiǎoyú, N-682 would have 14 months, which was impossible. Hence changing the jiàn from chǒu to hài is appropriate.
Having corrected the typo in N-681, it is not difficult to see that the jiàn in N-680 in Table 3-7 is also incorrect. It follows from the xiǎoyús in N-681 and N-680 that there was a leap month in N-681 and the New Year day of N-680 was Dec. 14, -681. The first month clearly contained the winter solstice and so was the zǐ month. The sexagenary day on Dec. 14, -681 was guǐ wèi, which agrees with Table 3-7. The sexagenary day of the conjunction day associated with the yín month was rén wǔ, in contradiction with Table 3-7. The xiǎoyú of the yín month conjunction was also different from the number listed in Table 3-7. Changing the jiàn from yín to zǐ removes the discrepancies.
Table 3-7 lists the sexagenary day of the New Year day of N-654 as rén zǐ, and the conjunction xiǎoyú was 675; the xiǎoyú of the new year day conjunction of N-653 was 26 = mod(675+378, 1027). It follows that there was no leap month in N-654, and the number of days between the new year day conjunction of N-653 and the midnight of the New Year day of N-654 was [675/1027 + 12×(29+545/1027)] days = (355 + 26/1027) days. The integer part was 355 and the xiǎoyú was 26. It is easy to show, using modular arithmetic, that the sexagenary day 355 days after the day of rén zǐ is dīng wèi, which is one day after the day of bǐng wǔ. The bǐng wǔ listed in Table 3-7 is probably caused by a mistake in arithmetic calculation.
Table 3-7 lists the New Year day of N-624 as the wù zǐ day in the zǐ month (December 25, 626 BCE) and the xiǎoyú was 551. If there was no leap month in N-624, the New Year day of N-623 would be the rén wǔ day in the zǐ month (December 13, 625 BCE) and the xiǎoyú would be 929. If there was a leap month in N-624, the New Year day of N-623 would be the rén zǐ day in the chǒu month (January 12, 624 BCE) and the xiǎoyú would be 447. It is therefore impossible for the xiǎoyú in N-624 to be 614. Table 3-7 lists the New Year day of N-623 as the rén wǔ day in the zǐ month, so the xiǎoyú should be 929.
Zhāng Péiyú has another book titled Sānqiān Wǔbǎiniǎn Lìrì Tiānxiàng (《三千五百年历日天象》 or 3500 Years of Calendars and Astronomical Phenomena), in which there are also calendar dates for the Chunqiu calendar. The New Year days of N-721, N-681 and N-680 agree with my corrected dates. However, the New Year days of N-675, N-674, N-600, N-519 and N-502 differ by one month compared to those in Table 3-7 of Ancient Chinese Calendars and Almanacs. I do not use the data of 3500 Years of Calendars and Astronomical Phenomena on this website in the Spring and Autumn period, as the reconstruction method is not stated and so it is difficult to assess the reliability of the data.fn2
Leap Month and Jiàn in the Chunqiu Calendar
Scholars have not come to an agreement on the position of the leap months in the Chunqiu calendar. The 19th century scholar Wáng Tāo placed some of the leap months in the middle of the years in order to account for some of the dates recorded by the chronicle Chunqiu, which were otherwise irreconcilable with his reconstructed calendar. Zhāng points out that leap months are only mentioned twice in Chunqiu and they were all placed at the end of the years. He also doesn't think that there was any natural algorithm in the Chunqiu calendar to place a leap month in the middle of a year. Thus he thinks all leap months were placed at the end of the years. I adopt Zhāng's view and place all leap months at the end of the years on this website.
As there were no fixed rules for inserting leap months, the jiàns of the first months were not fixed either. Looking at the table above, we see that the jiàns wandered between hài (present-day month 10) and yín (present-day month 1), with chǒu (present-day month 12) occurring more often in the early years and zǐ (present-day month 11) occurring more often in the later years. Zhāng speculates that the Chunqiu calendar makers probably discovered the 19-year cycle (known as the Metonic cycle in ancient Greece) and the cycle of the tropical year in later years, and intentionally shifted the first month's jiàn from chǒu to zǐ. Sometime in the Warring States period (480 BCE – 222 BCE), the Lu state used the Lu calendar, one of the gǔliùlì (ancient six calendars) used in that period, in which a rule for inserting leap months was developed and the first month was fixed in the zǐ month.
Reliability of the Reconstructed Chunqiu Calendar
Zhāng's reconstructed Chunqiu calendar is based on a lunar cycle and leap months deduced from the dates recorded in the chronicle Chunqiu. We can only say that it is a model constructed to fit the data. The lunar conjunction is computed by adding integer multiples of the lunar cycle to a constant, which is consistent with the píngshuò rule. However, using one lunar cycle for the entire period of 242 years implies that the rules of calendar did not change over 200+ years, which does not seem to be possible. However, using a simple model to fit the data is reasonable given the lack of information on the calendar evolution at that time. One way to assess the reliability of the reconstructed calendar is to examine how well the model fits the data.
According to Zhāng's description in Section 3.5 in Ancient Chinese Calendars and Almanacs, there are 393 pieces of calendrical dates mentioned in the chronicle Chunqiu. Most of the dates are consistent with the reconstructed calendar, but 45 of them are inconsistent. Of these 45, 11 of them can be resolved if leap months were inserted in the middle of the years. The current version of Chunqiu was passed down over many generations by hand copying the texts over 2000+ years. Mistakes are inevitable. It is also found that there are incompatible texts in Chunqiu. Of course, some discripancies may be explained by typos. However, it is difficult to decide whether a descrpancy is caused by typos or a true discrpancy between the reconstructed calendar and the texts. If we assume that all of the 45 mismatches are true descrpancies, the reconstructed calendar can explain about 89% of the calendrical dates mentioned in Chunqiu. Comparing the two reconstructed calendars between Zhāng and Wáng Tāo listed in Table 3-7 in Ancient Chinese Calendars and Almanacs, we see that sometimes their New Year days can differ by one month. This is caused by their different opinions on whether or not a leap month could appear in the middle of a year. Based on these pieces of information, I speculate it is very likely that there are true discrepancies between Zhāng's reconstructed calendar and the true calendar used at that time, but the amount of deviations may be small. The reconstructed calendar is of great value for historians.
Julian Days
In the example demonstrated above, time is measured from the midnight of the New Year day of N-721. In modern calendar calculations, time is often measured from noon on January 1, 4713 BCE in the proleptic Julian calendar. This day-counting system is known as the Julian days. Here for convenience, the time origin is assumed to be the local time for the Lu state. The Julian day at midnight on the New Year day of N-721 is 1457727.5. Therefore, the Julian day of any given time (measured from the midnight of the New Year day of N-721) can be obtained by adding 1457727.5.
The advantage of using Julian days is that there are standard algorithms for converting Julian days to dates in the Julian/Gregorian calendar. Our sexagenary cycle page also lists formulae for converting Julian days to sexagenary days. However, using Julian days for the computation of the Chunqiu calendar alone is not simpler than the calculation demonstrated above. Dates in the Julian calendar are so regular that we can easily invent a conversion method ourselves without relying on the standard algorithms. On the other hand, Julian days are convenient if we want to compute gǔliùlì (ancient six calendars), and calendars used by the Qin and early Han dynasties in addition to the Chunqiu calendars. Each of these calendars have their own natural time origins. Using Julian days is just to unify the time origin at noon on Jan. 1, -4712. We can then do the calendar date conversion and sexagenary day calculation using a single procedure. This is very useful when writing a computer program for calendar calculations.
Here I introduce a method to calculate the Chunqiu calendar using Julian days. Equation (1) for the lunar conjunction time can be written in terms of Julian days by the following equation. JD(Mi) = 1457727.5 + 268/1027 + i(29 + 545/1027) (5) Let's look at the example of computing the new year day conjunction of N-649 again. From the table above, we have A(y) = 890. It follows from equation (5) that the Julian day of the conjunction was JD = 1457727.5 + 268/1027 + 890× (29 + 545/1027) = 1484009.5 + 574/1027. The Julian day at noon on the New Year day was 1484010 and the xiǎoyú of the conjunction was 574. Using a standard Julian day-Julian calendar conversion algorithm (e.g. algorithm by Richards), Julian day 1484010 corresponds to Dec. 31, -650 in the proleptic Julian calendar. According to the formulae in our sexagenary cycle page, the heavenly stem number of the New Year day was 1 + mod(1484010-1, 10) = 10, which means the heavenly stem of the day was guǐ; the earthly branch number was 1+ mod(1484010+1, 12) = 8 and the earthly branch was wèi. Thus the sexagenary cycle of the New Year day was guǐ wèi. All these results agree with the above calculation.
I use fractions in the above calculation. Calculations are now usually done on a computer and it is more complicated to write a program to handle fractions. Thus, using floating point numbers is easier even though the computational efficiency is slightly reduced. Modern computers are so fast that the slight decrease in efficiency is hardly noticeable. However, there is one thing we should be careful. When the xiǎoyú of a conjunction is exactly 0, the conjunction occurs exactly at midnight. The decimal part of the Julian day is exactly 0.5, but floating point roundoff error may give 0.49999999999 instead, resulting in an off-by-one-day error. This can be prevented by adding 0.0001 to the Julian day. Specifically, equation (1) is modified as follows. JD(Mi) = 1457727.761054236 + i · 29.53067185978578 (6) Since 0.0001 = 0.1027/1027, adding it to equation (5) results in the xiǎoyú changing from the range between 0 and 1026 to the range between 0.1027 and 1026.1027. Now the conjunction can never occur at midnight and so the floating point roundoff error will not produce a one-day error. Now that we are dealing with decimals, it is no longer necessary to calculate xiǎoyú, but we can still calculate it if we want: xiǎoyú (omitting the denominator 1027) = floor(1027(JD + 0.5 - floor(JD + 0.5)) (7) Here floor(x) denotes the largest integer smaller than or equal to x. JD + 0.5 - floor(JD + 0.5) is xiǎoyú expressed in decimals. Since 0.0001 is added to the Julian day, when the number is multiplied by 1027 it becomes an integer plus 0.1027. The floor() function then removes the decimals and the result is xiǎoyú with the denominator 1027 omitted. As mentioned, we no longer need to care about xiǎoyús when using decimals. The only reason to calculate xiǎoyús is to compare them with the values listed in Table 3-7 in Ancient Chinese Calendars and Almanacs for code validation.
Footnotes
[fn1] The average number of days in the Julian calendar is 365.25 days, which is 0.0078 days longer than the tropical year (365.2422 days). As a result, the dates of the winter solstice gradually drifted earlier and earlier in the Julian calendar. The average number of days in a Gregorian year is 365.2425 days, much closer to the tropical year, so the dates of the winter solstice have not drifted much between now and the Gregorian calendar reform in 1582. Winter solstice occurs around Dec. 21 today. The Gregorian reform in 1582 skipped 10 days by specifying that the date following Oct 4, 1582 was Oct 15, 1582. Hence the date of the winter solstice before the calendar reform was around Dec. 11. There are 2232 years between 1582 and -650 and the winter solstice drifted by 0.0078×2232 days = 17.4 days. It follows that the winter solstice in -650 was around Dec. 28 in the proleptic Julian calendar.
[fn2] The New Year days of N-675 and N-674 listed in the book are very dubious. If the data were correct, there would be 3 consecutive leap months occurring in N-677, N-676 and N-675, and there would be no leap months in the next 6 years. I have not studied the Chunqiu calendar and cannot say for sure such unusual leap month pattern was impossible, but I find the data in Table 3-7 of Ancient Chinese Calendars and Almanacs to be more reasonable.