Reconstruction of the Chunqiu Calendar

First draft: March, 2019


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.


Contents

  1. Computation of Lunar Conjunctions
  2. Leap Months and Accumulated Months
  3. Typos in Table 3-7 in Ancient Chinese Calendars and Almanacs
  4. Leap Month and Jiàn in the Chunqiu Calendar
  5. Reliability of the Reconstructed Chunqiu Calendar
  6. Julian Days
   Footnotes

Computation of Lunar Conjunctions

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 , which was . 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. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-7210chǒuXīn sìJan. 16, 722 BCE268
*N-72012chǒuYǐ hàiJan. 5, 721 BCE646
N-71925chǒuJǐ hàiJan. 23, 720 BCE542
N-71837chǒuGuǐ sìJan. 12, 719 BCE920
*N-71749chǒuWù zǐJan. 2, 718 BCE271
N-71662chǒuRén zǐJan. 21, 717 BCE167
*N-71574chǒuBǐng wǔJan. 9, 716 BCE545
N-71487yínGēng wǔJan. 28, 715 BCE441
*N-71399chǒuJiǎ zǐJan. 17, 714 BCE819
N-712112yínWù zǐFeb. 5, 713 BCE715
N-711124chǒuGuǐ wèiJan. 25, 712 BCE66
*N-710136chǒuDīng chǒuJan. 14, 711 BCE444
N-709149yínXīn chǒuFeb. 2, 710 BCE340
N-708161chǒuYǐ wèiJan. 22, 709 BCE718
*N-707173chǒuGēng yínJan. 11, 708 BCE69

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-706186yínGuǐ chǒuJan. 29, 707 BCE992
N-705198chǒuWù shēnJan. 19, 706 BCE343
*N-704210chǒuRén yínJan. 8, 705 BCE721
N-703223chǒuBǐng yínJan. 26, 704 BCE617
N-702235chǒuGēng shēnJan. 15, 703 BCE995
*N-701247chǒuYǐ mǎoJan. 5, 702 BCE346
N-700260chǒuJǐ mǎoJan. 24, 701 BCE242
*N-699272chǒuGuǐ yǒuJan. 12, 700 BCE620
N-698285yínDīng yǒuJan. 31, 699 BCE516
N-697297chǒuXīn mǎoJan. 20, 698 BCE894
N-696309chǒuBǐng xūJan. 10, 697 BCE245
*N-695321chǒuGēng chénDec. 29, 697 BCE623
N-694334chǒuJiǎ chénJan. 17, 695 BCE519
N-693346chǒuWù xūJan. 6, 694 BCE897
*N-692358Guǐ sìDec. 27, 694 BCE248

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-691371chǒuDīng sìJan. 14, 692 BCE144
*N-690383chǒuXīn hàiJan. 3, 691 BCE522
N-689396chǒuYǐ hàiJan. 22, 690 BCE418
N-688408chǒuJǐ sìJan. 11, 689 BCE796
N-687420chǒuJiǎ zǐDec. 31, 689 BCE147
*N-686432Wù wǔDec. 20, 688 BCE525
N-685445chǒuRén wǔJan. 8, 686 BCE421
N-684457Bǐng zǐDec. 28, 686 BCE799
N-683469Xīn wèiDec. 17, 685 BCE150
N-682481Yǐ chǒuDec. 6, 684 BCE528
*N-681493hàiJǐ wèiNov. 25, 683 BCE906
*N-680506Guǐ wèiDec. 14, 682 BCE802
N-679519chǒuDīng wèiJan. 1, 680 BCE698
*N-678531Rén yínDec. 22, 680 BCE49
*N-677544chǒuYǐ chǒuJan. 9, 678 BCE972

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-676557yínJǐ chǒuJan. 28, 677 BCE868
N-675569chǒuJiǎ shēnJan. 17, 676 BCE219
*N-674581chǒuWù yínJan. 6, 675 BCE597
N-673594chǒuRén yínJan. 25, 674 BCE493
N-672606chǒuBǐng shēnJan. 14, 673 BCE871
N-671618chǒuXīn mǎoJan. 3, 672 BCE222
*N-670630Yǐ yǒuDec. 23, 672 BCE600
N-669643chǒuJǐ yǒuJan. 11, 670 BCE496
N-668655chǒuGuǐ mǎoDec. 31, 670 BCE874
*N-667667Wù xūDec. 20, 669 BCE225
N-666680chǒuRén xūJan. 8, 667 BCE121
*N-665692Bǐng chénDec. 28, 667 BCE499
N-664705chǒuGēng chénJan. 16, 665 BCE395
N-663717chǒuJiǎ xūJan. 4, 664 BCE773
*N-662729Jǐ sìDec. 25, 664 BCE124

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-661742chǒuGuǐ sìJan. 13, 662 BCE20
N-660754chǒuDīng hàiJan. 2, 661 BCE398
*N-659766Xīn sìDec. 21, 661 BCE776
*N-658779chǒuYǐ sìJan. 9, 659 BCE672
N-657792yínJǐ sìJan. 28, 658 BCE568
N-656804chǒuGuǐ hàiJan. 17, 657 BCE946
N-655816chǒuWù wǔJan. 6, 656 BCE297
N-654828Rén zǐDec. 26, 656 BCE675
N-653840Dīng wèiDec. 16, 655 BCE26
*N-652852Xīn chǒuDec. 5, 654 BCE404
N-651865Yǐ chǒuDec. 23, 653 BCE300
*N-650877Jǐ wèiDec. 12, 652 BCE678
N-649890chǒuGuǐ wèiDec. 31, 651 BCE574
*N-648902Dīng chǒuDec. 20, 650 BCE952
N-647915chǒuXīn chǒuJan. 7, 648 BCE848

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-646927chǒuBǐng shēnDec. 28, 648 BCE199
N-645940chǒuGēng shēnJan. 16, 646 BCE95
N-644952chǒuJiǎ yínJan. 5, 645 BCE473
N-643964Wù shēnDec. 24, 645 BCE851
*N-642976Guǐ mǎoDec. 14, 644 BCE202
N-641989chǒuDīng mǎoJan. 2, 642 BCE98
*N-6401001Xīn yǒuDec. 22, 642 BCE476
N-6391014chǒuYǐ yǒuJan. 9, 640 BCE372
N-6381026chǒuJǐ mǎoDec. 29, 640 BCE750
N-6371038Jiǎ xūDec. 19, 639 BCE101
*N-6361050Wù chénDec. 8, 638 BCE479
N-6351063Rén chénDec. 26, 637 BCE375
*N-6341075Bǐng xūDec. 15, 636 BCE753
N-6331088chǒuGēng xūJan. 3, 634 BCE649
N-6321100Yǐ sìDec. 24, 634 BCE0

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-6311112Jǐ hàiDec. 12, 633 BCE378
N-6301124Guǐ sìDec. 1, 632 BCE756
*N-6291136hàiWù zǐNov. 21, 631 BCE107
N-6281149Rén zǐDec. 10, 630 BCE3
N-6271161hàiBǐng wǔNov. 28, 629 BCE381
*N-6261173hàiGēng zǐNov. 17, 628 BCE759
*N-6251186Jiǎ zǐDec. 6, 627 BCE655
N-6241199Wù zǐDec. 25, 626 BCE551
*N-6231211Rén wǔDec. 13, 625 BCE929
N-6221224chǒuBǐng wǔJan. 1, 623 BCE825
N-6211236Xīn chǒuDec. 22, 623 BCE176
*N-6201248Yǐ wèiDec. 11, 622 BCE554
N-6191261chǒuJǐ wèiDec. 29, 621 BCE450
N-6181273Guǐ chǒuDec. 18, 620 BCE828
*N-6171285Wù shēnDec. 8, 619 BCE179

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-6161298Rén shēnDec. 27, 618 BCE75
N-6151310Bǐng yínDec. 15, 617 BCE453
*N-6141322Gēng shēnDec. 4, 616 BCE831
N-6131335Jiǎ shēnDec. 23, 615 BCE727
N-6121347Jǐ mǎoDec. 13, 614 BCE78
*N-6111359Guǐ yǒuDec. 1, 613 BCE456
N-6101372Dīng yǒuDec. 20, 612 BCE352
N-6091384Xīn mǎoDec. 9, 611 BCE730
*N-6081396hàiBǐng xūNov. 29, 610 BCE81
N-6071409Jǐ yǒuDec. 16, 609 BCE1004
N-6061421Jiǎ chénDec. 6, 608 BCE355
N-6051433hàiWù xūNov. 25, 607 BCE733
*N-6041445hàiGuǐ sìNov. 15, 606 BCE84
N-6031458Bǐng chénDec. 2, 605 BCE1007
*N-6021470hàiXīn hàiNov. 22, 604 BCE358

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-6011483Yǐ hàiDec. 11, 603 BCE254
N-6001496chǒuJǐ hàiDec. 30, 602 BCE150
N-5991508Guǐ sìDec. 18, 601 BCE528
*N-5981520Dīng hàiDec. 7, 600 BCE906
N-5971533Xīn hàiDec. 26, 599 BCE802
N-5961545Bǐng wǔDec. 16, 598 BCE153
*N-5951557Gēng zǐDec. 4, 597 BCE531
N-5941570Jiǎ zǐDec. 23, 596 BCE427
*N-5931582Wù wǔDec. 12, 595 BCE805
N-5921595chǒuRén wǔDec. 31, 594 BCE701
N-5911607Dīng chǒuDec. 20, 593 BCE52
N-5901619Xīn wèiDec. 9, 592 BCE430
*N-5891631Yǐ chǒuNov. 28, 591 BCE808
N-5881644Jǐ chǒuDec. 17, 590 BCE704
N-5871656Jiǎ shēnDec. 6, 589 BCE55

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-5861668hàiWù yínNov. 25, 588 BCE433
N-5851681Rén yínDec. 14, 587 BCE329
N-5841693Bǐng shēnDec. 3, 586 BCE707
*N-5831705hàiXīn mǎoNov. 22, 585 BCE58
N-5821718Jiǎ yínDec. 10, 584 BCE981
N-5811730Jǐ yǒuNov. 30, 583 BCE332
*N-5801742hàiGuǐ mǎoNov. 19, 582 BCE710
N-5791755Dīng mǎoDec. 7, 581 BCE606
*N-5781767hàiXīn yǒuNov. 26, 580 BCE984
*N-5771780Yǐ yǒuDec. 15, 579 BCE880
N-5761793chǒuJǐ yǒuJan. 3, 577 BCE776
N-5751805Jiǎ chénDec. 23, 577 BCE127
N-5741817Wù xūDec. 12, 576 BCE505
*N-5731829Rén chénDec. 1, 575 BCE883
N-5721842Bǐng chénDec. 20, 574 BCE779

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-5711854Xīn hàiDec. 9, 573 BCE130
N-5701867chǒuYǐ hàiDec. 28, 572 BCE26
N-5691879Jǐ sìDec. 17, 571 BCE404
*N-5681891Guǐ hàiDec. 6, 570 BCE782
N-5671904Dīng hàiDec. 24, 569 BCE678
N-5661916Rén wǔDec. 14, 568 BCE29
*N-5651928Bǐng zǐDec. 3, 567 BCE407
N-5641941Gēng zǐDec. 22, 566 BCE303
N-5631953Jiǎ wǔDec. 10, 565 BCE681
*N-5621965Jǐ chǒuNov. 30, 564 BCE32
N-5611978Rén zǐDec. 18, 563 BCE955
*N-5601990Dīng wèiDec. 8, 562 BCE306
N-5592003Xīn wèiDec. 26, 561 BCE202
N-5582015Yǐ chǒuDec. 15, 560 BCE580
N-5572027Jǐ wèiDec. 4, 559 BCE958

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-5562039hàiJiǎ yínNov. 24, 558 BCE309
N-5552052Wù yínDec. 12, 557 BCE205
N-5542064Rén shēnDec. 1, 556 BCE583
*N-5532076hàiBǐng yínNov. 20, 555 BCE961
*N-5522089Gēng yínDec. 9, 554 BCE857
N-5512102chǒuJiǎ yínDec. 27, 553 BCE753
N-5502114Jǐ yǒuDec. 17, 552 BCE104
*N-5492126Guǐ mǎoDec. 6, 551 BCE482
N-5482139Dīng mǎoDec. 25, 550 BCE378
N-5472151Xīn yǒuDec. 13, 549 BCE756
N-5462163Bǐng chénDec. 3, 548 BCE107
*N-5452175hàiGēng xūNov. 22, 547 BCE485
*N-5442188Jiǎ xūDec. 11, 546 BCE381
N-5432201chǒuWù xūDec. 29, 545 BCE277
N-5422213Rén chénDec. 18, 544 BCE655

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-5412225Dīng hàiDec. 8, 543 BCE6
*N-5402237hàiXīn sìNov. 27, 542 BCE384
N-5392250Yǐ sìDec. 15, 541 BCE280
*N-5382262Jǐ hàiDec. 4, 540 BCE658
N-5372275Guǐ hàiDec. 23, 539 BCE554
N-5362287Dīng sìDec. 12, 538 BCE932
*N-5352299Rén zǐDec. 1, 537 BCE283
N-5342312Bǐng zǐDec. 20, 536 BCE179
*N-5332324Gēng wǔDec. 9, 535 BCE557
N-5322337chǒuJiǎ wǔDec. 28, 534 BCE453
N-5312349Wù zǐDec. 16, 533 BCE831
*N-5302361Guǐ wèiDec. 6, 532 BCE182
N-5292374Dīng wèiDec. 25, 531 BCE78
N-5282386Xīn chǒuDec. 14, 530 BCE456
N-5272398Yǐ wèiDec. 2, 529 BCE834

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
*N-5262410hàiGēng yínNov. 22, 528 BCE185
N-5252423Jiǎ yínDec. 11, 527 BCE81
*N-5242435Wù shēnNov. 30, 526 BCE459
N-5232448Rén shēnDec. 18, 525 BCE355
*N-5222460Bǐng yínDec. 7, 524 BCE733
N-5212473Gēng yínDec. 26, 523 BCE629
*N-5202485Jiǎ shēnDec. 15, 522 BCE1007
N-5192498chǒuWù shēnJan. 2, 520 BCE903
N-5182510Guǐ mǎoDec. 23, 520 BCE254
N-5172522Dīng yǒuDec. 12, 519 BCE632
*N-5162534Xīn mǎoDec. 1, 518 BCE1010
N-5152547Yǐ mǎoDec. 19, 517 BCE906
N-5142559Gēng xūDec. 9, 516 BCE257
*N-5132571Jiǎ chénNov. 28, 515 BCE635
*N-5122584Wù chénDec. 17, 514 BCE531

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-5112597chǒuRén chénJan. 4, 512 BCE427
N-5102609Bǐng xūDec. 24, 512 BCE805
N-5092621Xīn sìDec. 14, 511 BCE156
N-5082633Yǐ hàiDec. 3, 510 BCE534
*N-5072645hàiJǐ sìNov. 21, 509 BCE912
N-5062658Guǐ sìDec. 10, 508 BCE808
*N-5052670Wù zǐNov. 30, 507 BCE159
N-5042683Rén zǐDec. 19, 506 BCE55
*N-5032695Bǐng wǔDec. 7, 505 BCE433
N-5022708Gēng wǔDec. 26, 504 BCE329
N-5012720Jiǎ zǐDec. 15, 503 BCE707
N-5002732Jǐ wèiDec. 5, 502 BCE58
*N-4992744hàiGuǐ chǒuNov. 23, 501 BCE436
N-4982757Dīng chǒuDec. 12, 500 BCE332
*N-4972769Xīn wèiDec. 1, 499 BCE710

* There was a leap month in this year.



Chunqiu Cal. yearAcc. monthsJiànSexagenary dateJulian Cal. DateXiǎoyú
N-4962782Yǐ wèiDec. 20, 498 BCE606
*N-4952794Jǐ chǒuDec. 8, 497 BCE984
N-4942807chǒuGuǐ chǒuDec. 27, 496 BCE880
N-4932819Wù shēnDec. 17, 495 BCE231
*N-4922831Rén yínDec. 6, 494 BCE609
N-4912844Bǐng yínDec. 24, 493 BCE505
N-4902856Gēng shēnDec. 13, 492 BCE883
*N-4892868Yǐ mǎoDec. 3, 491 BCE234
N-4882881Jǐ mǎoDec. 22, 490 BCE130
*N-4872893Guǐ yǒuDec. 10, 489 BCE508
N-4862906chǒuDīng yǒuDec. 29, 488 BCE404
N-4852918Xīn mǎoDec. 18, 487 BCE782
*N-4842930Bǐng xūDec. 8, 486 BCE133
N-4832943Gēng xūDec. 26, 485 BCE29
N-4822955Jiǎ chénDec. 15, 484 BCE407

* 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 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 month and the first month of N-649 was one month after the 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 DayXiǎoyú
1 (L)Dec. 31, 651 BCEGuǐ Wèi574
2 (S)Jan. 30, 650 BCEGuǐ Chǒu92
3 (L)Feb. 28Rén Wǔ637
4 (S)Mar. 30Rén Zǐ155
5 (L)Apr. 28Xīn Sì700
6 (S)May 28Xīn Hài218
7 (L)June 26Gēng Chén763
8 (S)July 26Gēng Xū281
9 (L)Aug. 24Jǐ Mǎo826
10 (S)Sep. 23Jǐ Yǒu344
11 (L)Oct. 22Wù Yín889
12 (S)Nov. 21Wù Shēn407

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.

YearCorrection to Table 3-7 in Ancient Chinese Calendars and Almanacs
N-720Sexagenary day: Jǐ Hài (己亥) Yǐ Hài (乙亥)
N-681Jiàn: Chǒu Hài
N-680Jiàn: Yín
N-653Sexagenary day: Bǐng Wǔ Dīng Wèi
N-623Xiǎ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