Package: borax
Borax - python农历&节日工具库 - 中文数字/设计模式/树形结构概述 (Overview)githubhttps://github.com/kinegratii/boraxgiteehttps://gitee.com/kinegratii/boraxBorax 是一个Python3工具集合库。包括了以下几个话题：话题（Topics）内容Borax.LunarDate1900-2100年的中国农历日期库Borax.Festivals实现常见节日（公历、农历、星期、节气）的工具库Borax.Choices声明式的选项类。适用于Django.models.choices 定义。Borax.Datasets记录型数据操作库，包括连结（Join）、列选择（fetch）等Borax.DataStuctures树形结构，json数据Borax.Numbers数字库。包括中文数字、百分数等。Borax.Patterns设计模式。包括单例模式、代理对象、延迟对象。安装 (Installation)Borax 的 python 版本要求如下borax 版本python版本维护状态4.1.x3.9+维护开发4.0.03.7+维护至2024年12月31日3.x3.5+不再维护可以通过pip安装 ：$pipinstallborax版本 (Version)Borax的版本符合语义化版本，格式为<主版本号>.<副版本号>.<修正版本号>， 推荐使用下面方式定义Borax的依赖版本号。borax~=4.1使用示例 (Usage)Borax.LunarDate: 中国农历日期一个支持1900-2100年的农历日期工具库。本模块的数据和算法参考自项目jjonline/calendar.js，部分算法和数据有所修改。创建日期，日期推算fromdatetimeimporttimedeltafromborax.calendarsimportLunarDate# 获取今天的农历日期（农历二〇一八年七月初一）print(LunarDate.today())# LunarDate(2018, 7, 1, 0)# 将公历日期转化为农历日期ld=LunarDate.from_solar_date(2018,8,11)print(ld)# LunarDate(2018, 7, 1, 0)# 日期推算，返回10天后的农历日期print(ld.after(10))# LunarDate(2018, 7, 11, 0)# 可以直接与 datetime.timedelta 直接相加减print(ld+timedelta(days=10))# LunarDate(2018, 7, 11, 0)格式化字符串today=LunarDate.today()print(today.strftime('%Y年%L%M月%D'))# '二〇一八年六月廿六'print(today.strftime('今天的干支表示法为：%G'))# '今天的干支表示法为：戊戌年庚申月辛未日'Borax.Festival: 国内外节日创建春节（每年正月初一）对应的节日对象fromborax.calendars.festivals2importLunarFestivalfestival=LunarFestival(month=1,day=1)print(festival.description)# '农历每年正月初一'# 下一次春节的具体日期以及距离天数print(festival.countdown())# (273, <WrappedDate:2022-02-01(二〇二二年正月初一)>)# 接下来5个春节的日期 ['2022-02-01(二〇二二年正月初一)', '2023-01-22(二〇二三年正月初一)', '2024-02-10(二〇二四年正月初一)', '2025-01-29(二〇二五年正月初一)', '2026-02-17(二〇二六年正月初一)']print([str(wd)forwdinfestival.list_days(start_date=date.today(),count=5)])可支持的节日类型节日表示法规范化描述元旦SolarFestival(month=1, day=1)农历每年正月初一中秋节LunarFestival(month=8, day=15)农历每年八月十五母亲节（每年5月第二个周日）WeekFestival(month=5, index=2, week=calendar.SUNDAY)公历每年5月第2个星期日除夕LunarFestival(day=-1)农历每年最后一天程序员节SolarFestival(freq=FreqConst.YEARLY，day=256)公历每年第256天清明节TemFestival(name="清明")公历每年清明每月5日SolarFestival(freq=FreqConst.MONTHLY， day=5)公历每月5日国际麻风节WeekFestival(month=1, index=-1, week=calendar.SUNDAY)公历1月倒数第1个星期日每月最后一个周日WeekFestival(month=0, index=-1, week=calendar.SUNDAY)公历每月倒数第1个星期日初伏TemFestival('夏至', nth=3, day_gz='庚')公历每年夏至起第三个庚日Borax.FestivalLibrary：内置节日库基本使用示例fromdatetimeimportdatefromborax.calendars.festivals2importFestivalLibrary,WrappedDatelibrary=FestivalLibrary.load_builtin()# 2020年国庆节和中秋节是同一天names=library.get_festival_names(date(2020,10,1))print(names)# ['国庆节', '中秋节']# 2021年七夕festival=library.get_festival('七夕')print(festival.description)# '农历每年七月初七'print(WrappedDate(festival.at(year=2021)))# '2021-08-14(二〇二一年七月初七)'计算节日及其距离今天（2021年5月4日）的天数fromborax.calendars.festivals2importFestivalLibrarylibrary=FestivalLibrary.load_builtin()forndays,wd,festivalinlibrary.list_days_in_countdown(countdown=365):print(f'{ndays:>3d}{wd}{festival.name}')输出结果0 2022-05-04(四月初四) 青年节
  4 2022-05-08(四月初八) 母亲节
  8 2022-05-12(四月十二) 护士节
...
332 2023-04-01(闰二月十一) 愚人节
336 2023-04-05(闰二月十五) 清明
362 2023-05-01(三月十二) 劳动节Borax.Numbers: 中文数字处理不同形式的中文数字fromborax.numbersimportChineseNumbers# 小写、计量print(ChineseNumbers.measure_number(204))# '二百零四'# 小写、编号print(ChineseNumbers.order_number(204))# '二百〇四'# 大写、计量print(ChineseNumbers.measure_number(204,upper=True))# '贰佰零肆'# 大写、编号print(ChineseNumbers.order_number(204,upper=True))# '贰佰〇肆'财务金额importdecimalfromborax.numbersimportFinanceNumbersdecimal.getcontext().prec=2print(FinanceNumbers.to_capital_str(100000000))# '壹亿元整'print(FinanceNumbers.to_capital_str(4578442.23))# '肆佰伍拾柒万捌仟肆佰肆拾贰元贰角叁分'print(FinanceNumbers.to_capital_str(107000.53))# '壹拾万柒仟元伍角叁分'print(FinanceNumbers.to_capital_str(decimal.Decimal(4.50)))# '肆元伍角零分'更多模块功能参见文档。文档 (Document)文档由Material for MkDocs构建，另外备用文档使用docsify构建。2024年1月起，仅保留 Read the Docs 文档源。源网址read-the-docshttps://borax.readthedocs.io/zh_CN/latest/github（已废弃）https://kinegratii.github.io/boraxgitee（已废弃）https://kinegratii.gitee.io/borax开发特性和规范 (Development Features)Typing HintsFlake8 Code Stylenose2|pytestGithub ActionCode Coveragepyproject.toml build tools项目构建 (Project Build)从4.1.0 开始，borax 使用pyproject.toml作为项目构建的配置文件，使用以下命令构建 wheel 发行包。python-mbuild-w开源协议 (License)The MIT License (MIT)