Convert Gregorian date to lunar date
This is the primary conversion function. It computes the JDE of the given Gregorian date, then determines the corresponding lunar date by finding the enclosing new moon and major solar term.
For dates in January before the 20th, the Gregorian year is adjusted backward because Chinese New Year never starts before January 20.
Calendar configuration (determines epoch and timezone)
Gregorian year (e.g., 2024)
Month (1-12)
Day of month
Lunar date value with cycle/year/month/leap/day
Low-level pure functions for calendar conversion. Most users should prefer the ChineseDate value object API. These functions are useful when you need fine-grained control or want to build custom logic on top of the core algorithms.