Why precisely today?
Today
Wed 29 Jan 2025
The Chinese calendar is a lunisolar calendar. This means that months are determined by the motion of the Moon around the Earth, and years are determined by the motion of the Earth around the Sun.
​
Months start on the day of the new moon, in the time zone of Beijing. Dates of new moon can be easily computed with the Wolfram Language function NewMoon. This is the date of the next new moon, in my time zone GMT-6:
NewMoon[]
Thu 27 Feb 2025 18:44:49GMT-6
The previous new moon was precisely earlier today:
newmoon=NewMoon[TimeDirection->-1]
Wed 29 Jan 2025 06:35:58GMT-6
This is the official name of the time zone of Beijing:
tz=LocalTimeZone
Beijing
CITY

Asia/Shanghai
The new moon is also on January 29 in that time zone:
NewMoon[TimeDirection->-1,TimeZone->tz]
Wed 29 Jan 2025 20:35:58CST
Therefore today is day 1 of a month of the Chinese calendar:
CalendarConvert[Today,"Chinese"]
78 cycle YĭSìnian Zhēngyuè 1Chinese
The year name YĭSìnian literally means the year of Yĭ-Sì (乙巳), and is a notation for years. The first character has 10 variations and the current year is the second variation. The second character has 12 variations, which correspond to the well known 12 zodiac signs (like the Rat, Ox, Tiger, Rabbit, ...), and the current variation Sì (巳) indicates it is the year of Snake. Every year, both characters progress to the next variation. This combination gives a cycle of 60 years.
Today is New Year’s day in the Chinese calendar because that month is the first month in the Chinese calendar. This is how we represent that calendar day in Wolfram Language, in the form {cycle, year, month, day}:
%//InputForm
DateObject[{78, 42, 1, 1}, Day, Chinese]
We are in the 42nd year of the 78th cycle. That gives 77*60+42 = 4662 years since the first year. Therefore the first year was 2025 - 4662 = -2637 . This was the first day of the first cycle:
CalendarData["Chinese","EpochDate"]
1 cycle JiăZĭnian Zhēngyuè 1Chinese
%//InputForm
DateObject[{1, 1, 1, 1}, Instant, Chinese, None]
corresponding to this date in the Gregorian calendar:
CalendarConvert[%]
Wed 15 Feb 2637 BC 00:00:00
Let’s now find the new moons during the next Chinese year. New moons are numbered by integers, called “lunation numbers”. Today’s new moon is number 310:
LunationNumber[newmoon]
310.
These are the new moons 310 to 323, in our time zone:
FromLunationNumber/@Range[310,323]

Wed 29 Jan 2025 06:35:58GMT-6
,
Thu 27 Feb 2025 18:44:49GMT-6
,
Sat 29 Mar 2025 04:57:49GMT-6
,
Sun 27 Apr 2025 13:31:09GMT-6
,
Mon 26 May 2025 21:02:21GMT-6
,
Wed 25 Jun 2025 04:31:37GMT-6
,
Thu 24 Jul 2025 13:11:12GMT-6
,
Sat 23 Aug 2025 00:06:33GMT-6
,
Sun 21 Sep 2025 13:54:07GMT-6
,
Tue 21 Oct 2025 06:25:10GMT-6
,
Thu 20 Nov 2025 00:47:16GMT-6
,
Fri 19 Dec 2025 19:43:20GMT-6
,
Sun 18 Jan 2026 13:51:58GMT-6
,
Tue 17 Feb 2026 06:01:09GMT-6

Now compute the days, in Beijing’s time zone. Note that some days change. For example next new moon will be on February 27 in Chicago, but on February 28 in Beijing:
Table[FromLunationNumber[n,TimeZone->tz,DateGranularity->"Day"],{n,310,323}]

Wed 29 Jan 2025
,
Fri 28 Feb 2025
,
Sat 29 Mar 2025
,
Mon 28 Apr 2025
,
Tue 27 May 2025
,
Wed 25 Jun 2025
,
Fri 25 Jul 2025
,
Sat 23 Aug 2025
,
Mon 22 Sep 2025
,
Tue 21 Oct 2025
,
Thu 20 Nov 2025
,
Sat 20 Dec 2025
,
Mon 19 Jan 2026
,
Tue 17 Feb 2026

Find the corresponding dates in the Chinese calendar:
CalendarConvert[%,"Chinese"]

78 cycle YĭSìnian Zhēngyuè 1Chinese
,
78 cycle YĭSìnian Èryuè 1Chinese
,
78 cycle YĭSìnian Sānyuè 1Chinese
,
78 cycle YĭSìnian Sìyuè 1Chinese
,
78 cycle YĭSìnian Wǔyuè 1Chinese
,
78 cycle YĭSìnian Liùyuè 1Chinese
,
78 cycle YĭSìnian RùnLiùyuè 1Chinese
,
78 cycle YĭSìnian Qīyuè 1Chinese
,
78 cycle YĭSìnian Bāyuè 1Chinese
,
78 cycle YĭSìnian Jiǔyuè 1Chinese
,
78 cycle YĭSìnian Shíyuè 1Chinese
,
78 cycle YĭSìnian Shíyīyuè 1Chinese
,
78 cycle YĭSìnian Làyuè 1Chinese
,
78 cycle BĭngWǔnian Zhēngyuè 1Chinese

%//InputForm
{DateObject[{78, 42, 1, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 2, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 3, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 4, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 5, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 6, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, LeapVariant[6], 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 7, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 8, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 9, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 10, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 11, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 42, 12, 1}, Day, Chinese, Asia/Shanghai],
DateObject[{78, 43, 1, 1}, Day, Chinese, Asia/Shanghai]}
We see that they all fall on day 1 of the respective months. We also see that month 6 appears twice. The second is a “leap month”, and it’s needed to synchronize approximately the cycle of lunar months with the cycle of solar years. This is again why the Chinese calendar is called a lunisolar calendar.

CITE THIS NOTEBOOK

Chinese New Year 2025: Lunar-Solar synchronization, new moon timing, and historical cycles​
by Jose Martin-Garcia​
Wolfram Community, STAFF PICKS, January 29, 2025
​https://community.wolfram.com/groups/-/m/t/3367117