SuperAPI AI 工具集

query-taiwan-holiday

办公与效率

查看项目

更新于 10-24 11:08

技能介绍

用途 query-taiwan-holiday 用于判断台湾某个具体日期是假日还是工作日。它面向需要准确假日数据的自动化场景,强调使用官方来源,不依赖星期几或日历推测。

主要能力

  1. 日期校验:只接受精确的 ASCII ISO 日期(YYYY-MM-DD),拒绝空白、时间戳、斜杠格式、不存在的日期(如 2026-02-30),以及无法通过日历解析器往返验证的输入。
  2. 环境自适应查询:按顺序尝试多种方式,任一方式失败则继续下一方式,不因单次失败终止。
    • 已安装方式:在 POSIX shell 中用 command -v holidaytw、PowerShell 中用 Get-Command holidaytw 检测,找到则直接使用。
    • npm/npx 方式:Node.js 20+ 与 npm 可用时,运行 npx --yes holidaytw --json YYYY-MM-DD,无需全局安装;该 npm 包为官方跨平台包装器,会下载对应原生二进制并校验 checksums.txt。
    • 安装脚本方式:macOS/Linux 使用 curl -fsSL https://raw.githubusercontent.com/doggy8088/holidaybook/master/install.sh | sh;Windows PowerShell 使用 irm https://raw.githubusercontent.com/doggy8088/holidaybook/master/install.ps1 | iex。安装后需重新解析路径,默认位置为 ~/.local/bin/holidaytw 或 %LOCALAPPDATA%\Programs\holidaytw\holidaytw.exe。
    • 静态 JSON API 回退:仅当无法运行或安装任何 CLI 时,使用 curl 请求 https://holiday.gh.miniasp.com/YYYY-MM-DD.json,仅替换已校验的日期并保留引号。
  3. 结果解析:严格解析 JSON,要求单个对象、日期匹配(API 可能使用 YYYYMMDD)、存在且可识别的 isHoliday 值。不抓取人类可读文本输出。
  4. 状态解释:isHoliday 为 true 或 1 表示假日,false 或 0 表示工作日;不根据周末或工作日推断,因为台湾存在补行上班日与弹性放假。保留 date、name、对应数据源的 category 字段(CLI 为 category,静态 API 为 holidaycategory)及 description。工作日也可能带有名称与说明(如军人节 isHoliday 为 false)。

使用方式 CLI 查询:holidaytw --json YYYY-MM-DD;人类可读输出为 holidaytw YYYY-MM-DD。仅在明确需要可信镜像时,才添加 --base-url https://mirror.example。静态 API 回退时使用资料中给出的 curl 命令,保持 URL 引号。

适用场景 适合需要在程序或自动化流程中判断台湾日期属性的任务,例如排班、工期计算、活动安排等需要区分假日与补班工作日的场合。

限制 仅使用官方来源:registry.npmjs.org 上的 holidaytw 包、github.com/doggy8088/holidaybook、raw.githubusercontent.com/doggy8088/holidaybook 以及 https://holiday.gh.miniasp.com,禁止第三方镜像或代理,禁止关闭 TLS 校验。缺失、null 或无法识别的 isHoliday 视为未知数据,不能当作工作日。需区分 HTTP 404 或数据不可用与 DNS、TLS、超时等传输错误。拒绝格式错误的 JSON、非对象响应、日期不匹配和缺少必要字段,绝不静默替换为邻近日期。所有途径(含静态 API)均失败后,才报告检索失败并且不对假日状态做任何断言。CLI 退出码:0 成功,2 参数错误或日期无效,1 运行时失败;--json 模式下失败会在 stderr 输出 {"error":{"code":"...","message":"..."}},code 可能为 usage、invalid_date、invalid_configuration、http_error、invalid_response、timeout、canceled、network_error、output_error。