Try Live
Add Docs
Rankings
Pricing
Enterprise
Docs
Install
Install
Docs
Pricing
Enterprise
More...
More...
Try Live
Rankings
Add Docs
Lunar
https://github.com/6tail/lunar-python
Admin
Lunar is a calendar library for converting between solar and Chinese lunar calendars, with support
...
Tokens:
15,401
Snippets:
64
Trust Score:
9.5
Update:
1 month ago
Context
Skills
Chat
Benchmark
84.6
Suggestions
Latest
Show doc for...
Code
Info
Show Results
Context Summary (auto-generated)
Raw
Copy
Link
# Lunar Python Lunar 是一款无第三方依赖的中国传统日历工具库,支持公历(阳历)、农历(阴历、老黄历)、佛历和道历之间的转换与计算。该库提供了丰富的传统历法功能,包括星座、儒略日、干支纪年、生肖、节气、节日、彭祖百忌、吉神方位(喜神/福神/财神/阳贵神/阴贵神)、胎神方位、冲煞、纳音、星宿、八字、五行、十神、建除十二值星、黄道吉凶日等功能。 作为一个功能完整的日历计算库,Lunar 支持精确的节气时刻计算、法定节假日与调休判断、八字命理分析(包括大运、流年、流月、小运等)以及各种传统农历术语的获取。该库从 v1.2.23 版本起仅支持 Python 3,适用于日历应用开发、命理分析工具、传统文化研究等多种场景。 ## 安装 ```bash pip install lunar_python ``` ## Solar 类 - 阳历日期处理 Solar 类用于处理公历(阳历)日期,提供日期创建、转换、节日获取、星座计算等功能。 ```python from lunar_python import Solar # 通过年月日创建阳历日期 solar = Solar.fromYmd(2024, 1, 15) print(solar.toYmd()) # 2024-01-15 print(solar.toString()) # 2024-01-15 # 通过年月日时分秒创建 solar = Solar.fromYmdHms(2024, 1, 15, 10, 30, 0) print(solar.toYmdHms()) # 2024-01-15 10:30:00 # 获取完整信息 print(solar.toFullString()) # 输出: 2024-01-15 10:30:00 闰年 星期一 摩羯座 # 从datetime对象创建 from datetime import datetime solar = Solar.fromDate(datetime.now()) # 判断闰年 solar = Solar.fromYmd(2024, 1, 1) print(solar.isLeapYear()) # True # 获取星期(0=周日,1=周一,...) print(solar.getWeek()) # 1 print(solar.getWeekInChinese()) # 一 # 获取星座 solar = Solar.fromYmd(2024, 5, 20) print(solar.getXingZuo()) # 金牛 # 获取节日 solar = Solar.fromYmd(2024, 5, 1) print(solar.getFestivals()) # ['劳动节'] print(solar.getOtherFestivals()) # ['国际劳动节'] # 日期推算 solar = Solar.fromYmd(2024, 1, 15) next_solar = solar.next(10) # 往后推10天 print(next_solar.toYmd()) # 2024-01-25 prev_solar = solar.next(-5) # 往前推5天 print(prev_solar.toYmd()) # 2024-01-10 # 仅计算工作日(跳过节假日和周末) solar = Solar.fromYmd(2024, 1, 15) work_day = solar.next(5, True) # 往后推5个工作日 print(work_day.toYmd()) ``` ## Lunar 类 - 农历日期处理 Lunar 类用于处理农历(阴历)日期,提供农历创建、阳历转换、干支计算、节气获取等核心功能。 ```python from lunar_python import Lunar, Solar # 通过农历年月日创建 lunar = Lunar.fromYmd(1986, 4, 21) print(lunar.toString()) # 一九八六年四月廿一 print(lunar.toFullString()) # 输出: 一九八六年四月廿一 丙寅(虎)年 癸巳(蛇)月 癸酉(鸡)日 子(鼠)时 纳音[炉中火 长流水 剑锋金 桑柘木] ... # 农历转阳历 solar = lunar.getSolar() print(solar.toYmd()) # 1986-05-29 # 从阳历创建农历 solar = Solar.fromYmd(2024, 2, 10) lunar = solar.getLunar() print(lunar.toString()) # 二〇二四年正月初一 # 从datetime创建农历 from datetime import datetime lunar = Lunar.fromDate(datetime.now()) # 获取年份信息 print(lunar.getYear()) # 数字年份 print(lunar.getYearInChinese()) # 二〇二四 print(lunar.getYearInGanZhi()) # 甲辰 print(lunar.getYearShengXiao()) # 龙 # 获取月份信息 print(lunar.getMonth()) # 数字月份(负数表示闰月) print(lunar.getMonthInChinese()) # 正月 print(lunar.getMonthInGanZhi()) # 丙寅 # 获取日期信息 print(lunar.getDay()) # 数字日期 print(lunar.getDayInChinese()) # 初一 print(lunar.getDayInGanZhi()) # 甲子 # 获取时辰信息 lunar = Lunar.fromYmdHms(2024, 1, 1, 10, 0, 0) print(lunar.getTimeInGanZhi()) # 己巳 print(lunar.getTimeZhi()) # 巳 # 获取干支(精确计算,以立春为界) print(lunar.getYearInGanZhiExact()) print(lunar.getMonthInGanZhiExact()) print(lunar.getDayInGanZhiExact()) # 获取纳音 print(lunar.getYearNaYin()) # 如:海中金 print(lunar.getMonthNaYin()) print(lunar.getDayNaYin()) print(lunar.getTimeNaYin()) # 获取生肖 print(lunar.getYearShengXiao()) # 龙 print(lunar.getMonthShengXiao()) print(lunar.getDayShengXiao()) print(lunar.getTimeShengXiao()) # 日期推算 next_lunar = lunar.next(10) # 往后推10天 prev_lunar = lunar.next(-5) # 往前推5天 ``` ## 节气功能 获取二十四节气信息,支持精确到时刻的节气计算。 ```python from lunar_python import Solar, Lunar solar = Solar.fromYmd(2024, 2, 4) lunar = solar.getLunar() # 获取当天节气(如果是节气日则返回名称,否则返回空字符串) jie_qi = lunar.getJieQi() print(jie_qi) # 立春 # 获取当天节令(节) current_jie = lunar.getCurrentJie() if current_jie: print(current_jie.getName()) # 立春 print(current_jie.getSolar().toYmdHms()) # 节气精确时刻 # 获取当天气令(气) current_qi = lunar.getCurrentQi() # 获取上一个/下一个节气 prev_jie_qi = lunar.getPrevJieQi() next_jie_qi = lunar.getNextJieQi() print(f"上一节气: {prev_jie_qi.getName()}") print(f"下一节气: {next_jie_qi.getName()}") # 获取上一个/下一个节令 prev_jie = lunar.getPrevJie() next_jie = lunar.getNextJie() # 获取上一个/下一个气令 prev_qi = lunar.getPrevQi() next_qi = lunar.getNextQi() # 获取节气表(包含精确时刻) jie_qi_table = lunar.getJieQiTable() for name in lunar.getJieQiList(): solar_time = jie_qi_table[name] print(f"{name}: {solar_time.toYmdHms()}") # 输出: # DA_XUE: 2023-12-07 17:32:00 # 冬至: 2023-12-22 11:27:00 # 小寒: 2024-01-06 04:49:00 # 大寒: 2024-01-20 22:07:00 # 立春: 2024-02-04 16:26:00 # ... ``` ## 八字与命理 EightChar 类提供完整的八字命理分析功能,包括四柱、五行、十神、大运、流年等。 ```python from lunar_python import Solar # 创建八字对象 solar = Solar.fromYmdHms(1983, 2, 15, 20, 0, 0) lunar = solar.getLunar() ba_zi = lunar.getEightChar() # 获取四柱 print(f"年柱: {ba_zi.getYear()}") # 癸亥 print(f"月柱: {ba_zi.getMonth()}") # 甲寅 print(f"日柱: {ba_zi.getDay()}") # 甲戌 print(f"时柱: {ba_zi.getTime()}") # 甲戌 # 获取天干地支 print(f"年干: {ba_zi.getYearGan()}, 年支: {ba_zi.getYearZhi()}") print(f"月干: {ba_zi.getMonthGan()}, 月支: {ba_zi.getMonthZhi()}") print(f"日干: {ba_zi.getDayGan()}, 日支: {ba_zi.getDayZhi()}") print(f"时干: {ba_zi.getTimeGan()}, 时支: {ba_zi.getTimeZhi()}") # 获取五行 print(f"年柱五行: {ba_zi.getYearWuXing()}") # 水水 print(f"月柱五行: {ba_zi.getMonthWuXing()}") # 木木 print(f"日柱五行: {ba_zi.getDayWuXing()}") # 木土 print(f"时柱五行: {ba_zi.getTimeWuXing()}") # 木土 # 获取纳音 print(f"年柱纳音: {ba_zi.getYearNaYin()}") # 大海水 print(f"月柱纳音: {ba_zi.getMonthNaYin()}") # 大溪水 print(f"日柱纳音: {ba_zi.getDayNaYin()}") # 山头火 print(f"时柱纳音: {ba_zi.getTimeNaYin()}") # 山头火 # 获取十神 print(f"年柱十神: {ba_zi.getYearShiShenGan()}") # 正印 print(f"月柱十神: {ba_zi.getMonthShiShenGan()}") # 比肩 print(f"日柱十神: {ba_zi.getDayShiShenGan()}") # 日主 print(f"时柱十神: {ba_zi.getTimeShiShenGan()}") # 比肩 # 获取地支藏干十神(可能返回1-3个) year_shi_shen_zhi = ba_zi.getYearShiShenZhi() for shi_shen in year_shi_shen_zhi: print(f"年支藏干十神: {shi_shen}") # 获取地势(长生十二神) print(f"年柱地势: {ba_zi.getYearDiShi()}") # 如:长生、沐浴、冠带等 print(f"月柱地势: {ba_zi.getMonthDiShi()}") print(f"日柱地势: {ba_zi.getDayDiShi()}") print(f"时柱地势: {ba_zi.getTimeDiShi()}") # 获取胎元 print(f"胎元: {ba_zi.getTaiYuan()}") print(f"胎元纳音: {ba_zi.getTaiYuanNaYin()}") # 获取命宫和身宫 print(f"命宫: {ba_zi.getMingGong()}") print(f"命宫纳音: {ba_zi.getMingGongNaYin()}") print(f"身宫: {ba_zi.getShenGong()}") print(f"身宫纳音: {ba_zi.getShenGongNaYin()}") # 获取旬空 print(f"年柱旬空: {ba_zi.getYearXunKong()}") print(f"月柱旬空: {ba_zi.getMonthXunKong()}") print(f"日柱旬空: {ba_zi.getDayXunKong()}") print(f"时柱旬空: {ba_zi.getTimeXunKong()}") ``` ## 大运与流年 计算八字的大运、流年、流月、小运信息。 ```python from lunar_python import Solar solar = Solar.fromYmdHms(1983, 2, 15, 20, 0, 0) lunar = solar.getLunar() ba_zi = lunar.getEightChar() # 获取运(0=女,1=男) yun = ba_zi.getYun(0) # 女命 # 起运信息 print(f"出生 {yun.getStartYear()} 年 {yun.getStartMonth()} 个月 {yun.getStartDay()} 天后起运") print(f"起运日期: {yun.getStartSolar().toYmd()}") # 获取大运列表 da_yun_arr = yun.getDaYun() for i, da_yun in enumerate(da_yun_arr): print(f"大运[{i}] {da_yun.getStartYear()}年 {da_yun.getStartAge()}岁 {da_yun.getGanZhi()}") # 输出: # 大运[0] 1983年 0岁 甲寅 # 大运[1] 1986年 4岁 癸丑 # 大运[2] 1996年 14岁 壬子 # ... # 获取某个大运的流年 liu_nian_arr = da_yun_arr[1].getLiuNian() for i, liu_nian in enumerate(liu_nian_arr): print(f"流年[{i}] {liu_nian.getYear()}年 {liu_nian.getAge()}岁 {liu_nian.getGanZhi()}") # 获取某个大运的小运 xiao_yun_arr = da_yun_arr[0].getXiaoYun() for i, xiao_yun in enumerate(xiao_yun_arr): print(f"小运[{i}] {xiao_yun.getYear()}年 {xiao_yun.getAge()}岁 {xiao_yun.getGanZhi()}") # 获取流年的流月 liu_yue_arr = liu_nian_arr[0].getLiuYue() for i, liu_yue in enumerate(liu_yue_arr): print(f"流月[{i}] {liu_yue.getMonthInChinese()}月 {liu_yue.getGanZhi()}") ``` ## 八字反推阳历日期 根据八字四柱反推对应的阳历日期。 ```python from lunar_python import Solar # 八字转阳历(可能有多个结果) solar_list = Solar.fromBaZi("庚子", "戊子", "己卯", "庚午") for solar in solar_list: print(solar.toFullString()) # 输出符合该八字的所有阳历日期 # 可以指定起始年份 solar_list = Solar.fromBaZi("甲子", "丙寅", "丁卯", "壬寅", base_year=1950) for solar in solar_list: print(solar.toYmd()) # sect参数控制子时算法(1=子时算当天,2=子时算明天) solar_list = Solar.fromBaZi("庚子", "戊子", "己卯", "甲子", sect=2) ``` ## 吉凶宜忌 获取每日宜忌、吉神凶煞、彭祖百忌等信息。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 每日宜 yi_list = lunar.getDayYi() print(f"宜: {', '.join(yi_list)}") # 输出: 宜: 嫁娶, 祭祀, 祈福, ... # 每日忌 ji_list = lunar.getDayJi() print(f"忌: {', '.join(ji_list)}") # 时辰宜 time_yi = lunar.getTimeYi() print(f"时宜: {', '.join(time_yi)}") # 时辰忌 time_ji = lunar.getTimeJi() print(f"时忌: {', '.join(time_ji)}") # 吉神(宜趋) ji_shen = lunar.getDayJiShen() print(f"吉神: {', '.join(ji_shen)}") # 凶煞(宜忌) xiong_sha = lunar.getDayXiongSha() print(f"凶煞: {', '.join(xiong_sha)}") # 彭祖百忌 print(f"彭祖百忌(干): {lunar.getPengZuGan()}") # 如:甲不开仓财物耗散 print(f"彭祖百忌(支): {lunar.getPengZuZhi()}") # 如:子不问卜自惹祸殃 # 建除十二值星 print(f"值星: {lunar.getZhiXing()}") # 如:建、除、满、平、定、执、破、危、成、收、开、闭 # 天神与吉凶 print(f"日天神: {lunar.getDayTianShen()}") # 如:青龙 print(f"日天神类型: {lunar.getDayTianShenType()}") # 如:黄道 print(f"日天神吉凶: {lunar.getDayTianShenLuck()}") # 吉/凶 print(f"时天神: {lunar.getTimeTianShen()}") print(f"时天神类型: {lunar.getTimeTianShenType()}") print(f"时天神吉凶: {lunar.getTimeTianShenLuck()}") ``` ## 方位信息 获取喜神、财神、福神、贵人等方位。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 喜神方位 print(f"日喜神方位: {lunar.getDayPositionXi()} ({lunar.getDayPositionXiDesc()})") # 输出: 日喜神方位: 巽 (东南) # 财神方位 print(f"日财神方位: {lunar.getDayPositionCai()} ({lunar.getDayPositionCaiDesc()})") # 福神方位 print(f"日福神方位: {lunar.getDayPositionFu()} ({lunar.getDayPositionFuDesc()})") # 阳贵神方位 print(f"日阳贵神方位: {lunar.getDayPositionYangGui()} ({lunar.getDayPositionYangGuiDesc()})") # 阴贵神方位 print(f"日阴贵神方位: {lunar.getDayPositionYinGui()} ({lunar.getDayPositionYinGuiDesc()})") # 太岁方位 print(f"年太岁方位: {lunar.getYearPositionTaiSui()} ({lunar.getYearPositionTaiSuiDesc()})") print(f"月太岁方位: {lunar.getMonthPositionTaiSui()} ({lunar.getMonthPositionTaiSuiDesc()})") print(f"日太岁方位: {lunar.getDayPositionTaiSui()} ({lunar.getDayPositionTaiSuiDesc()})") # 时辰方位 print(f"时喜神方位: {lunar.getTimePositionXi()} ({lunar.getTimePositionXiDesc()})") print(f"时财神方位: {lunar.getTimePositionCai()} ({lunar.getTimePositionCaiDesc()})") print(f"时福神方位: {lunar.getTimePositionFu()} ({lunar.getTimePositionFuDesc()})") ``` ## 冲煞信息 获取日冲、时冲、煞方向等信息。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 日冲 print(f"日冲: {lunar.getDayChong()}") # 如:午 print(f"日冲干: {lunar.getDayChongGan()}") # 如:庚 print(f"日冲生肖: {lunar.getDayChongShengXiao()}") # 如:马 print(f"日冲描述: {lunar.getDayChongDesc()}") # 如:(庚午)马 # 日煞 print(f"日煞: {lunar.getDaySha()}") # 如:南 # 时冲 print(f"时冲: {lunar.getTimeChong()}") print(f"时冲干: {lunar.getTimeChongGan()}") print(f"时冲生肖: {lunar.getTimeChongShengXiao()}") print(f"时冲描述: {lunar.getTimeChongDesc()}") # 时煞 print(f"时煞: {lunar.getTimeSha()}") ``` ## 九星信息 获取年、月、日、时的九星信息。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 年九星 year_nine_star = lunar.getYearNineStar() print(f"年九星: {year_nine_star}") print(f"九星名称: {year_nine_star.getName()}") # 月九星 month_nine_star = lunar.getMonthNineStar() print(f"月九星: {month_nine_star}") # 日九星 day_nine_star = lunar.getDayNineStar() print(f"日九星: {day_nine_star}") # 时九星 time_nine_star = lunar.getTimeNineStar() print(f"时九星: {time_nine_star}") ``` ## 星宿信息 获取二十八宿相关信息。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 星宿 print(f"星宿: {lunar.getXiu()}") # 如:斗 print(f"星宿吉凶: {lunar.getXiuLuck()}") # 吉/凶 print(f"星宿诗诀: {lunar.getXiuSong()}") # 政 print(f"政: {lunar.getZheng()}") # 如:木 # 兽 print(f"兽: {lunar.getAnimal()}") # 如:獬 # 宫 print(f"宫: {lunar.getGong()}") # 如:北方 # 守 print(f"守: {lunar.getShou()}") # 如:玄武 ``` ## 数九与三伏 获取数九和三伏信息。 ```python from lunar_python import Solar # 数九 solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() shu_jiu = lunar.getShuJiu() if shu_jiu: print(f"数九: {shu_jiu.getName()}") # 如:四九 print(f"第几天: {shu_jiu.getIndex()}") # 如:3(表示第3天) print(f"完整描述: {shu_jiu.toFullString()}") # 如:四九第3天 # 三伏 solar = Solar.fromYmd(2024, 7, 20) lunar = solar.getLunar() fu = lunar.getFu() if fu: print(f"三伏: {fu.getName()}") # 如:初伏 print(f"第几天: {fu.getIndex()}") # 如:5 print(f"完整描述: {fu.toFullString()}") # 如:初伏第5天 ``` ## LunarYear 类 - 农历年 获取农历年的相关信息,包括闰月、天数、干支等。 ```python from lunar_python import LunarYear # 创建农历年 year = LunarYear.fromYear(2024) # 基本信息 print(f"年份: {year.getYear()}") # 2024 print(f"干支: {year.getGanZhi()}") # 甲辰 print(f"天干: {year.getGan()}") # 甲 print(f"地支: {year.getZhi()}") # 辰 # 闰月 leap_month = year.getLeapMonth() print(f"闰月: {leap_month if leap_month > 0 else '无'}") # 总天数 print(f"全年天数: {year.getDayCount()}") # 三元九运 print(f"元: {year.getYuan()}") # 如:下元 print(f"运: {year.getYun()}") # 如:九运 # 九星 nine_star = year.getNineStar() print(f"年九星: {nine_star}") # 传统术语 print(f"治水: {year.getZhiShui()}") # 如:二龙治水 print(f"耕田: {year.getGengTian()}") # 如:六牛耕田 print(f"分饼: {year.getFenBing()}") # 如:六人分饼 print(f"得金: {year.getDeJin()}") # 如:一日得金 # 年份推算 next_year = year.next(1) # 下一年 prev_year = year.next(-1) # 上一年 # 获取农历月列表 months = year.getMonthsInYear() for m in months: print(f"{m}") # 输出: # 2024年正月(30天) # 2024年二月(30天) # ... ``` ## LunarMonth 类 - 农历月 获取农历月的相关信息。 ```python from lunar_python import LunarMonth # 创建农历月 month = LunarMonth.fromYm(2024, 1) # 2024年正月 # 基本信息 print(f"年份: {month.getYear()}") print(f"月份: {month.getMonth()}") # 负数表示闰月 print(f"是否闰月: {month.isLeap()}") print(f"天数: {month.getDayCount()}") # 干支 print(f"干支: {month.getGanZhi()}") print(f"天干: {month.getGan()}") print(f"地支: {month.getZhi()}") # 方位 print(f"喜神方位: {month.getPositionXi()} ({month.getPositionXiDesc()})") print(f"财神方位: {month.getPositionCai()} ({month.getPositionCaiDesc()})") print(f"福神方位: {month.getPositionFu()} ({month.getPositionFuDesc()})") print(f"太岁方位: {month.getPositionTaiSui()} ({month.getPositionTaiSuiDesc()})") # 九星 nine_star = month.getNineStar() print(f"月九星: {nine_star}") # 月份推算 next_month = month.next(1) # 下个月 prev_month = month.next(-1) # 上个月 ``` ## HolidayUtil 类 - 节假日工具 获取中国法定节假日和调休信息(自2001年起)。 ```python from lunar_python.util import HolidayUtil # 获取指定日期的节假日信息 holiday = HolidayUtil.getHoliday(2024, 1, 1) if holiday: print(f"节日: {holiday.getName()}") # 元旦节 print(f"是否上班: {holiday.isWork()}") # False print(f"对应节日日期: {holiday.getTarget()}") # 2024-01-01 # 也可以用字符串格式 holiday = HolidayUtil.getHoliday("2024-05-01") print(holiday) # 2024-05-01 劳动节 2024-05-01 # 获取某月所有节假日 holidays = HolidayUtil.getHolidays(2024, 5) for h in holidays: print(f"{h}") # 获取某年所有节假日 holidays = HolidayUtil.getHolidays(2024) for h in holidays: work_status = "调休上班" if h.isWork() else "放假" print(f"{h.getDay()} - {h.getName()} - {work_status}") # 自定义节假日 # 修改节假日名称 names = list(HolidayUtil.NAMES) names[0] = "元旦" names[1] = "春节" HolidayUtil.fix(names, None) # 添加自定义节假日 # 格式: 日期YYYYMMDD(8位) + 名称索引(1位) + 是否上班0/1(1位) + 对应节日日期YYYYMMDD(8位) HolidayUtil.fix(None, "20210529912021052920211111:12021111120211201;120211201") ``` ## 儒略日转换 提供儒略日与公历日期之间的转换功能。 ```python from lunar_python import Solar # 公历转儒略日 solar = Solar.fromYmd(2024, 1, 15) julian_day = solar.getJulianDay() print(f"儒略日: {julian_day}") # 2460324.5 # 儒略日转公历 solar = Solar.fromJulianDay(2460324.5) print(f"公历: {solar.toYmdHms()}") # 2024-01-15 00:00:00 ``` ## 其他功能 获取六曜、物候、月相、日禄等传统信息。 ```python from lunar_python import Solar solar = Solar.fromYmd(2024, 1, 15) lunar = solar.getLunar() # 六曜 print(f"六曜: {lunar.getLiuYao()}") # 如:先胜、友引、先负、佛灭、大安、赤口 # 物候 print(f"物候: {lunar.getWuHou()}") # 如:雁北乡 # 候 print(f"候: {lunar.getHou()}") # 如:小寒 初候 # 月相 print(f"月相: {lunar.getYueXiang()}") # 如:朔、上弦、望、下弦 # 日禄 print(f"日禄: {lunar.getDayLu()}") # 如:寅命互禄 # 季节 print(f"季节: {lunar.getSeason()}") # 如:春、夏、秋、冬 # 时辰列表 times = lunar.getTimes() for time in times: print(f"{time.getMinHm()} - {time.getMaxHm()}: {time}") ``` ## 总结 Lunar 库是一个功能全面的中国传统日历工具,核心使用场景包括:日历应用开发(支持农历、节气、节日显示)、命理分析工具(八字排盘、大运流年计算)、黄历查询系统(每日宜忌、吉凶方位)、以及传统文化相关的研究和应用开发。该库无需任何第三方依赖,可以直接通过 pip 安装使用。 在集成模式上,Lunar 的设计遵循简洁的 API 风格,主要通过 `Solar`(阳历)和 `Lunar`(农历)两个核心类进行日期操作,两者可以互相转换。对于命理计算,可通过 `Lunar.getEightChar()` 获取八字对象,进而分析四柱、五行、十神、大运等信息。所有日期相关的类都支持 `next()` 方法进行前后推算,节假日功能通过 `HolidayUtil` 工具类提供,并支持自定义扩展。