如何用Python判断加拿大某省份的指定日期是否为省级假日
加拿大省级假日判断方案(基于holidays模块)
其实holidays模块完全支持加拿大各省份的假日查询,只是需要在初始化时指定对应省份的代码:
- 确保安装最新版holidays
先升级到最新版本避免兼容性问题:
pip install --upgrade holidays
- 指定省份查询假日
初始化Canada类时传入prov参数,对应省份的两位代码即可获取该省份的全部假日(含全国性+省级)。示例代码:
import holidays from datetime import date # 初始化安大略省(ON)的假日集合 on_holidays = holidays.Canada(prov="ON") # 检查2024年的公民日(Civic Holiday) target_date = date(2024, 8, 5) if target_date in on_holidays: print(f"{target_date} 是安大略省假日:{on_holidays[target_date]}") else: print(f"{target_date} 不是安大略省假日")
- 支持的省份代码列表
常用省份/地区的两位代码:
- AB:阿尔伯塔省
- BC:不列颠哥伦比亚省
- ON:安大略省
- QC:魁北克省
- SK:萨斯喀彻温省
- MB:曼尼托巴省
- NB:新不伦瑞克省
- NS:新斯科舍省
- NL:纽芬兰与拉布拉多省
- PE:爱德华王子岛省
- NT:西北地区
- NU:努纳武特地区
- YT:育空地区
- 自定义补充假日
如果遇到模块未覆盖的小众省级假日,可以手动添加:
# 给安大略省添加自定义假日 on_holidays.append({"2024-10-15": "安省专属小众假日"})
内容的提问来源于stack exchange,提问作者Lucy
相关产品推荐
相关产品推荐

