# celestial-calendar lunar year table (algo1)
# schema_version: 2
# celestial_version: 0.6.1
# release_asset: celestial-calendar==0.6.1 / PyPI wheel
# generated_by: src/calendar/celestial_data/generator.py
# generated_on: 2026-08-24
# source_api: celestial_calendar.lunar_year_info(algorithm, lunar_year)
# algo: 1
#   HKO official almanac lineage -- the default.
# timescale: HKO official civil dates (no astronomical timescale involved)
# year_range: 1901..2099 inclusive -- BOTH algos clamped to this window.
#   algo2 natively reports [410, 2500].  Clamping keeps one
#   range contract for both algos.  Widening is a follow-up issue.
# columns: lunar_year first_solar_date leap_month month_len_bits days_counts ganzhi
#   leap_month -- 1..12, or 0 when the year has no leap month.  hko_data spells the same
#   thing as `None`; the loader normalizes.
#   month_len_bits -- encoded from the public `month_lengths` tuple, LSB-first
#   (bit i = the (i+1)-th lunar month in sequence; a leap month occupies its own
#   slot; 1 = 30 days, 0 = 29 days).
#   days_counts -- decoded from month_len_bits, 12 or 13 entries; redundant on purpose,
#   so a hand-edit of either column is caught by the loader cross-check.
#   ganzhi -- (lunar_year - 4) mod 60 over Ganzhi.list_sexagenary_cycle(); not consumed
#   at runtime.  The 199/199 agreement with hko_data is checked by the test suite, not
#   here: see tests/calendar/test_celestial_tables.py.
# rows: 199
1901 1901-02-19 0 0x0752 29,30,29,29,30,29,30,29,30,30,30,29 辛丑
1902 1902-02-08 0 0x0ea5 30,29,30,29,29,30,29,30,29,30,30,30 壬寅
1903 1903-01-29 5 0x164a 29,30,29,30,29,29,30,29,29,30,30,29,30 癸卯
1904 1904-02-16 0 0x064b 30,30,29,30,29,29,30,29,29,30,30,29 甲辰
1905 1905-02-04 0 0x0a9b 30,30,29,30,30,29,29,30,29,30,29,30 乙巳
1906 1906-01-25 4 0x1556 29,30,30,29,30,29,30,29,30,29,30,29,30 丙午
1907 1907-02-13 0 0x056a 29,30,29,30,29,30,30,29,30,29,30,29 丁未
1908 1908-02-02 0 0x0b59 30,29,29,30,30,29,30,29,30,30,29,30 戊申
1909 1909-01-22 2 0x1752 29,30,29,29,30,29,30,29,30,30,30,29,30 己酉
1910 1910-02-10 0 0x0752 29,30,29,29,30,29,30,29,30,30,30,29 庚戌
1911 1911-01-30 6 0x1b25 30,29,30,29,29,30,29,29,30,30,29,30,30 辛亥
1912 1912-02-18 0 0x0b25 30,29,30,29,29,30,29,29,30,30,29,30 壬子
1913 1913-02-06 0 0x0a4b 30,30,29,30,29,29,30,29,29,30,29,30 癸丑
1914 1914-01-26 5 0x14ab 30,30,29,30,29,30,29,30,29,29,30,29,30 甲寅
1915 1915-02-14 0 0x02ad 30,29,30,30,29,30,29,30,29,30,29,29 乙卯
1916 1916-02-03 0 0x056b 30,30,29,30,29,30,30,29,30,29,30,29 丙辰
1917 1917-01-23 2 0x0b69 30,29,29,30,29,30,30,29,30,30,29,30,29 丁巳
1918 1918-02-11 0 0x0da9 30,29,29,30,29,30,29,30,30,29,30,30 戊午
1919 1919-02-01 7 0x1d92 29,30,29,29,30,29,29,30,30,29,30,30,30 己未
1920 1920-02-20 0 0x0e92 29,30,29,29,30,29,29,30,29,30,30,30 庚申
1921 1921-02-08 0 0x0d25 30,29,30,29,29,30,29,29,30,29,30,30 辛酉
1922 1922-01-28 5 0x1a4d 30,29,30,30,29,29,30,29,29,30,29,30,30 壬戌
1923 1923-02-16 0 0x0a56 29,30,30,29,30,29,30,29,29,30,29,30 癸亥
1924 1924-02-05 0 0x02b6 29,30,30,29,30,30,29,30,29,30,29,29 甲子
1925 1925-01-24 4 0x15b5 30,29,30,29,30,30,29,30,30,29,30,29,30 乙丑
1926 1926-02-13 0 0x06d4 29,29,30,29,30,29,30,30,29,30,30,29 丙寅
1927 1927-02-02 0 0x0ea9 30,29,29,30,29,30,29,30,29,30,30,30 丁卯
1928 1928-01-23 2 0x1e92 29,30,29,29,30,29,29,30,29,30,30,30,30 戊辰
1929 1929-02-10 0 0x0e92 29,30,29,29,30,29,29,30,29,30,30,30 己巳
1930 1930-01-30 6 0x0d26 29,30,30,29,29,30,29,29,30,29,30,30,29 庚午
1931 1931-02-17 0 0x052b 30,30,29,30,29,30,29,29,30,29,30,29 辛未
1932 1932-02-06 0 0x0a57 30,30,30,29,30,29,30,29,29,30,29,30 壬申
1933 1933-01-26 5 0x12b6 29,30,30,29,30,30,29,30,29,30,29,29,30 癸酉
1934 1934-02-14 0 0x0b5a 29,30,29,30,30,29,30,29,30,30,29,30 甲戌
1935 1935-02-04 0 0x06d4 29,29,30,29,30,29,30,30,29,30,30,29 乙亥
1936 1936-01-24 3 0x0ec9 30,29,29,30,29,29,30,30,29,30,30,30,29 丙子
1937 1937-02-11 0 0x0749 30,29,29,30,29,29,30,29,30,30,30,29 丁丑
1938 1938-01-31 7 0x1693 30,30,29,29,30,29,29,30,29,30,30,29,30 戊寅
1939 1939-02-19 0 0x0a93 30,30,29,29,30,29,29,30,29,30,29,30 己卯
1940 1940-02-08 0 0x052b 30,30,29,30,29,30,29,29,30,29,30,29 庚辰
1941 1941-01-27 6 0x0a5b 30,30,29,30,30,29,30,29,29,30,29,30,29 辛巳
1942 1942-02-15 0 0x0aad 30,29,30,30,29,30,29,30,29,30,29,30 壬午
1943 1943-02-05 0 0x056a 29,30,29,30,29,30,30,29,30,29,30,29 癸未
1944 1944-01-25 4 0x1b55 30,29,30,29,30,29,30,29,30,30,29,30,30 甲申
1945 1945-02-13 0 0x0ba4 29,29,30,29,29,30,29,30,30,30,29,30 乙酉
1946 1946-02-02 0 0x0b49 30,29,29,30,29,29,30,29,30,30,29,30 丙戌
1947 1947-01-22 2 0x1a93 30,30,29,29,30,29,29,30,29,30,29,30,30 丁亥
1948 1948-02-10 0 0x0a95 30,29,30,29,30,29,29,30,29,30,29,30 戊子
1949 1949-01-29 7 0x152d 30,29,30,30,29,30,29,29,30,29,30,29,30 己丑
1950 1950-02-17 0 0x0536 29,30,30,29,30,30,29,29,30,29,30,29 庚寅
1951 1951-02-06 0 0x0aad 30,29,30,30,29,30,29,30,29,30,29,30 辛卯
1952 1952-01-27 5 0x15aa 29,30,29,30,29,30,29,30,30,29,30,29,30 壬辰
1953 1953-02-14 0 0x05b2 29,30,29,29,30,30,29,30,30,29,30,29 癸巳
1954 1954-02-03 0 0x0da5 30,29,30,29,29,30,29,30,30,29,30,30 甲午
1955 1955-01-24 3 0x1d4a 29,30,29,30,29,29,30,29,30,29,30,30,30 乙未
1956 1956-02-12 0 0x0d4a 29,30,29,30,29,29,30,29,30,29,30,30 丙申
1957 1957-01-31 8 0x0a95 30,29,30,29,30,29,29,30,29,30,29,30,29 丁酉
1958 1958-02-18 0 0x0a97 30,30,30,29,30,29,29,30,29,30,29,30 戊戌
1959 1959-02-08 0 0x0556 29,30,30,29,30,29,30,29,30,29,30,29 己亥
1960 1960-01-28 6 0x0ab5 30,29,30,29,30,30,29,30,29,30,29,30,29 庚子
1961 1961-02-15 0 0x0ad5 30,29,30,29,30,29,30,30,29,30,29,30 辛丑
1962 1962-02-05 0 0x06d2 29,30,29,29,30,29,30,30,29,30,30,29 壬寅
1963 1963-01-25 4 0x0ea5 30,29,30,29,29,30,29,30,29,30,30,30,29 癸卯
1964 1964-02-13 0 0x0ea5 30,29,30,29,29,30,29,30,29,30,30,30 甲辰
1965 1965-02-02 0 0x064a 29,30,29,30,29,29,30,29,29,30,30,29 乙巳
1966 1966-01-21 3 0x0c97 30,30,30,29,30,29,29,30,29,29,30,30,29 丙午
1967 1967-02-09 0 0x0a9b 30,30,29,30,30,29,29,30,29,30,29,30 丁未
1968 1968-01-30 7 0x155a 29,30,29,30,30,29,30,29,30,29,30,29,30 戊申
1969 1969-02-17 0 0x056a 29,30,29,30,29,30,30,29,30,29,30,29 己酉
1970 1970-02-06 0 0x0b69 30,29,29,30,29,30,30,29,30,30,29,30 庚戌
1971 1971-01-27 5 0x1752 29,30,29,29,30,29,30,29,30,30,30,29,30 辛亥
1972 1972-02-15 0 0x0b52 29,30,29,29,30,29,30,29,30,30,29,30 壬子
1973 1973-02-03 0 0x0b25 30,29,30,29,29,30,29,29,30,30,29,30 癸丑
1974 1974-01-23 4 0x164b 30,30,29,30,29,29,30,29,29,30,30,29,30 甲寅
1975 1975-02-11 0 0x0a4b 30,30,29,30,29,29,30,29,29,30,29,30 乙卯
1976 1976-01-31 8 0x14ab 30,30,29,30,29,30,29,30,29,29,30,29,30 丙辰
1977 1977-02-18 0 0x02ad 30,29,30,30,29,30,29,30,29,30,29,29 丁巳
1978 1978-02-07 0 0x056d 30,29,30,30,29,30,30,29,30,29,30,29 戊午
1979 1979-01-28 6 0x0b69 30,29,29,30,29,30,30,29,30,30,29,30,29 己未
1980 1980-02-16 0 0x0da9 30,29,29,30,29,30,29,30,30,29,30,30 庚申
1981 1981-02-05 0 0x0d92 29,30,29,29,30,29,29,30,30,29,30,30 辛酉
1982 1982-01-25 4 0x1d25 30,29,30,29,29,30,29,29,30,29,30,30,30 壬戌
1983 1983-02-13 0 0x0d25 30,29,30,29,29,30,29,29,30,29,30,30 癸亥
1984 1984-02-02 10 0x1a4d 30,29,30,30,29,29,30,29,29,30,29,30,30 甲子
1985 1985-02-20 0 0x0a56 29,30,30,29,30,29,30,29,29,30,29,30 乙丑
1986 1986-02-09 0 0x02b6 29,30,30,29,30,30,29,30,29,30,29,29 丙寅
1987 1987-01-29 6 0x05b5 30,29,30,29,30,30,29,30,30,29,30,29,29 丁卯
1988 1988-02-17 0 0x06d5 30,29,30,29,30,29,30,30,29,30,30,29 戊辰
1989 1989-02-06 0 0x0ea9 30,29,29,30,29,30,29,30,29,30,30,30 己巳
1990 1990-01-27 5 0x1e92 29,30,29,29,30,29,29,30,29,30,30,30,30 庚午
1991 1991-02-15 0 0x0e92 29,30,29,29,30,29,29,30,29,30,30,30 辛未
1992 1992-02-04 0 0x0d26 29,30,30,29,29,30,29,29,30,29,30,30 壬申
1993 1993-01-23 3 0x0a56 29,30,30,29,30,29,30,29,29,30,29,30,29 癸酉
1994 1994-02-10 0 0x0a57 30,30,30,29,30,29,30,29,29,30,29,30 甲戌
1995 1995-01-31 8 0x14d6 29,30,30,29,30,29,30,30,29,29,30,29,30 乙亥
1996 1996-02-19 0 0x035a 29,30,29,30,30,29,30,29,30,30,29,29 丙子
1997 1997-02-07 0 0x06d5 30,29,30,29,30,29,30,30,29,30,30,29 丁丑
1998 1998-01-28 5 0x16c9 30,29,29,30,29,29,30,30,29,30,30,29,30 戊寅
1999 1999-02-16 0 0x0749 30,29,29,30,29,29,30,29,30,30,30,29 己卯
2000 2000-02-05 0 0x0693 30,30,29,29,30,29,29,30,29,30,30,29 庚辰
2001 2001-01-24 4 0x152b 30,30,29,30,29,30,29,29,30,29,30,29,30 辛巳
2002 2002-02-12 0 0x052b 30,30,29,30,29,30,29,29,30,29,30,29 壬午
2003 2003-02-01 0 0x0a5b 30,30,29,30,30,29,30,29,29,30,29,30 癸未
2004 2004-01-22 2 0x155a 29,30,29,30,30,29,30,29,30,29,30,29,30 甲申
2005 2005-02-09 0 0x056a 29,30,29,30,29,30,30,29,30,29,30,29 乙酉
2006 2006-01-29 7 0x1b55 30,29,30,29,30,29,30,29,30,30,29,30,30 丙戌
2007 2007-02-18 0 0x0ba4 29,29,30,29,29,30,29,30,30,30,29,30 丁亥
2008 2008-02-07 0 0x0b49 30,29,29,30,29,29,30,29,30,30,29,30 戊子
2009 2009-01-26 5 0x1a93 30,30,29,29,30,29,29,30,29,30,29,30,30 己丑
2010 2010-02-14 0 0x0a95 30,29,30,29,30,29,29,30,29,30,29,30 庚寅
2011 2011-02-03 0 0x052d 30,29,30,30,29,30,29,29,30,29,30,29 辛卯
2012 2012-01-23 4 0x0aad 30,29,30,30,29,30,29,30,29,30,29,30,29 壬辰
2013 2013-02-10 0 0x0ab5 30,29,30,29,30,30,29,30,29,30,29,30 癸巳
2014 2014-01-31 9 0x15aa 29,30,29,30,29,30,29,30,30,29,30,29,30 甲午
2015 2015-02-19 0 0x05d2 29,30,29,29,30,29,30,30,30,29,30,29 乙未
2016 2016-02-08 0 0x0da5 30,29,30,29,29,30,29,30,30,29,30,30 丙申
2017 2017-01-28 6 0x1d4a 29,30,29,30,29,29,30,29,30,29,30,30,30 丁酉
2018 2018-02-16 0 0x0d4a 29,30,29,30,29,29,30,29,30,29,30,30 戊戌
2019 2019-02-05 0 0x0c95 30,29,30,29,30,29,29,30,29,29,30,30 己亥
2020 2020-01-25 4 0x152e 29,30,30,30,29,30,29,29,30,29,30,29,30 庚子
2021 2021-02-12 0 0x0556 29,30,30,29,30,29,30,29,30,29,30,29 辛丑
2022 2022-02-01 0 0x0ab5 30,29,30,29,30,30,29,30,29,30,29,30 壬寅
2023 2023-01-22 2 0x15b2 29,30,29,29,30,30,29,30,30,29,30,29,30 癸卯
2024 2024-02-10 0 0x06d2 29,30,29,29,30,29,30,30,29,30,30,29 甲辰
2025 2025-01-29 6 0x0ea5 30,29,30,29,29,30,29,30,29,30,30,30,29 乙巳
2026 2026-02-17 0 0x0725 30,29,30,29,29,30,29,29,30,30,30,29 丙午
2027 2027-02-06 0 0x064b 30,30,29,30,29,29,30,29,29,30,30,29 丁未
2028 2028-01-26 5 0x0c97 30,30,30,29,30,29,29,30,29,29,30,30,29 戊申
2029 2029-02-13 0 0x0cab 30,30,29,30,29,30,29,30,29,29,30,30 己酉
2030 2030-02-03 0 0x055a 29,30,29,30,30,29,30,29,30,29,30,29 庚戌
2031 2031-01-23 3 0x0ad6 29,30,30,29,30,29,30,30,29,30,29,30,29 辛亥
2032 2032-02-11 0 0x0b69 30,29,29,30,29,30,30,29,30,30,29,30 壬子
2033 2033-01-31 11 0x1752 29,30,29,29,30,29,30,29,30,30,30,29,30 癸丑
2034 2034-02-19 0 0x0b52 29,30,29,29,30,29,30,29,30,30,29,30 甲寅
2035 2035-02-08 0 0x0b25 30,29,30,29,29,30,29,29,30,30,29,30 乙卯
2036 2036-01-28 6 0x1a4b 30,30,29,30,29,29,30,29,29,30,29,30,30 丙辰
2037 2037-02-15 0 0x0a4b 30,30,29,30,29,29,30,29,29,30,29,30 丁巳
2038 2038-02-04 0 0x04ab 30,30,29,30,29,30,29,30,29,29,30,29 戊午
2039 2039-01-24 5 0x055b 30,30,29,30,30,29,30,29,30,29,30,29,29 己未
2040 2040-02-12 0 0x05ad 30,29,30,30,29,30,29,30,30,29,30,29 庚申
2041 2041-02-01 0 0x0b6a 29,30,29,30,29,30,30,29,30,30,29,30 辛酉
2042 2042-01-22 2 0x1b52 29,30,29,29,30,29,30,29,30,30,29,30,30 壬戌
2043 2043-02-10 0 0x0d92 29,30,29,29,30,29,29,30,30,29,30,30 癸亥
2044 2044-01-30 7 0x1d25 30,29,30,29,29,30,29,29,30,29,30,30,30 甲子
2045 2045-02-17 0 0x0d25 30,29,30,29,29,30,29,29,30,29,30,30 乙丑
2046 2046-02-06 0 0x0a55 30,29,30,29,30,29,30,29,29,30,29,30 丙寅
2047 2047-01-26 5 0x14ad 30,29,30,30,29,30,29,30,29,29,30,29,30 丁卯
2048 2048-02-14 0 0x04b6 29,30,30,29,30,30,29,30,29,29,30,29 戊辰
2049 2049-02-02 0 0x05b5 30,29,30,29,30,30,29,30,30,29,30,29 己巳
2050 2050-01-23 3 0x0daa 29,30,29,30,29,30,29,30,30,29,30,30,29 庚午
2051 2051-02-11 0 0x0ec9 30,29,29,30,29,29,30,30,29,30,30,30 辛未
2052 2052-02-01 8 0x1e92 29,30,29,29,30,29,29,30,29,30,30,30,30 壬申
2053 2053-02-19 0 0x0e92 29,30,29,29,30,29,29,30,29,30,30,30 癸酉
2054 2054-02-08 0 0x0d26 29,30,30,29,29,30,29,29,30,29,30,30 甲戌
2055 2055-01-28 6 0x0a56 29,30,30,29,30,29,30,29,29,30,29,30,29 乙亥
2056 2056-02-15 0 0x0a57 30,30,30,29,30,29,30,29,29,30,29,30 丙子
2057 2057-02-04 0 0x0556 29,30,30,29,30,29,30,29,30,29,30,29 丁丑
2058 2058-01-24 4 0x06d5 30,29,30,29,30,29,30,30,29,30,30,29,29 戊寅
2059 2059-02-12 0 0x0755 30,29,30,29,30,29,30,29,30,30,30,29 己卯
2060 2060-02-02 0 0x0749 30,29,29,30,29,29,30,29,30,30,30,29 庚辰
2061 2061-01-21 3 0x0e93 30,30,29,29,30,29,29,30,29,30,30,30,29 辛巳
2062 2062-02-09 0 0x0693 30,30,29,29,30,29,29,30,29,30,30,29 壬午
2063 2063-01-29 7 0x152b 30,30,29,30,29,30,29,29,30,29,30,29,30 癸未
2064 2064-02-17 0 0x052b 30,30,29,30,29,30,29,29,30,29,30,29 甲申
2065 2065-02-05 0 0x0a5b 30,30,29,30,30,29,30,29,29,30,29,30 乙酉
2066 2066-01-26 5 0x155a 29,30,29,30,30,29,30,29,30,29,30,29,30 丙戌
2067 2067-02-14 0 0x056a 29,30,29,30,29,30,30,29,30,29,30,29 丁亥
2068 2068-02-03 0 0x0b65 30,29,30,29,29,30,30,29,30,30,29,30 戊子
2069 2069-01-23 4 0x174a 29,30,29,30,29,29,30,29,30,30,30,29,30 己丑
2070 2070-02-11 0 0x0b4a 29,30,29,30,29,29,30,29,30,30,29,30 庚寅
2071 2071-01-31 8 0x1a95 30,29,30,29,30,29,29,30,29,30,29,30,30 辛卯
2072 2072-02-19 0 0x0a95 30,29,30,29,30,29,29,30,29,30,29,30 壬辰
2073 2073-02-07 0 0x052d 30,29,30,30,29,30,29,29,30,29,30,29 癸巳
2074 2074-01-27 6 0x0aad 30,29,30,30,29,30,29,30,29,30,29,30,29 甲午
2075 2075-02-15 0 0x0ab5 30,29,30,29,30,30,29,30,29,30,29,30 乙未
2076 2076-02-05 0 0x05aa 29,30,29,30,29,30,29,30,30,29,30,29 丙申
2077 2077-01-24 4 0x0ba5 30,29,30,29,29,30,29,30,30,30,29,30,29 丁酉
2078 2078-02-12 0 0x0da5 30,29,30,29,29,30,29,30,30,29,30,30 戊戌
2079 2079-02-02 0 0x0d4a 29,30,29,30,29,29,30,29,30,29,30,30 己亥
2080 2080-01-22 3 0x1c95 30,29,30,29,30,29,29,30,29,29,30,30,30 庚子
2081 2081-02-09 0 0x0c96 29,30,30,29,30,29,29,30,29,29,30,30 辛丑
2082 2082-01-29 7 0x194e 29,30,30,30,29,29,30,29,30,29,29,30,30 壬寅
2083 2083-02-17 0 0x0556 29,30,30,29,30,29,30,29,30,29,30,29 癸卯
2084 2084-02-06 0 0x0ab5 30,29,30,29,30,30,29,30,29,30,29,30 甲辰
2085 2085-01-26 5 0x15b2 29,30,29,29,30,30,29,30,30,29,30,29,30 乙巳
2086 2086-02-14 0 0x06d2 29,30,29,29,30,29,30,30,29,30,30,29 丙午
2087 2087-02-03 0 0x0ea5 30,29,30,29,29,30,29,30,29,30,30,30 丁未
2088 2088-01-24 4 0x0e4a 29,30,29,30,29,29,30,29,29,30,30,30,29 戊申
2089 2089-02-10 0 0x068b 30,30,29,30,29,29,29,30,29,30,30,29 己酉
2090 2090-01-30 8 0x0c97 30,30,30,29,30,29,29,30,29,29,30,30,29 庚戌
2091 2091-02-18 0 0x04ab 30,30,29,30,29,30,29,30,29,29,30,29 辛亥
2092 2092-02-07 0 0x055b 30,30,29,30,30,29,30,29,30,29,30,29 壬子
2093 2093-01-27 6 0x0ad6 29,30,30,29,30,29,30,30,29,30,29,30,29 癸丑
2094 2094-02-15 0 0x0b6a 29,30,29,30,29,30,30,29,30,30,29,30 甲寅
2095 2095-02-05 0 0x0752 29,30,29,29,30,29,30,29,30,30,30,29 乙卯
2096 2096-01-25 4 0x1725 30,29,30,29,29,30,29,29,30,30,30,29,30 丙辰
2097 2097-02-12 0 0x0b45 30,29,30,29,29,29,30,29,30,30,29,30 丁巳
2098 2098-02-01 0 0x0a8b 30,30,29,30,29,29,29,30,29,30,29,30 戊午
2099 2099-01-21 2 0x149b 30,30,29,30,30,29,29,30,29,29,30,29,30 己未
