工作日工期计算·排除周末节假日(快速版)
> 定位:单功能做到极致——排期/请假/项目 deadline 要数工作日,手动数日历数到眼花还漏掉节假日;一键算准。 对标 SkillHub 高下载品类痛点(工作日计算、工期计算、算工作日、排除周末、项目排期、请假天数、工作日天数)。
> 隐私:全部计算在本机完成,只读/不出网,数据零外传。
一、何时使用
- 见触发关键词:工作日计算、工期计算、算工作日、排除周末、项目排期、请假天数、工作日天数。
负向清单(本件不做):超出单点范围的批量/修改类操作 → 升级对应标准/高档件(见第五节)。
二、怎么用
python scripts/main.py 2026-10-01 2026-10-10 # 基础:剔除周末
python scripts/main.py 2026-10-01 2026-10-10 2026-10-07 # 追加节假日
| 参数 | 说明 |
|---|---|
start(位置) |
起始日期 YYYY-MM-DD |
end(位置) |
结束日期 YYYY-MM-DD |
holidays(位置·可选·可多个) |
节假日;字符串/字符串列表/date 对象三种写法均归一生效(缺陷修复后锁死) |
三、判定逻辑(纯本地规则,不出网)
parse_date 统一解析起止日期 → normalize_holidays 把假日参数归一为 date 集合(字符串、列表、date 对象三态全支持,杜绝"字符串假日静默忽略")→ 逐日扫描:周六日与命中秋假日不计 → 输出「工作日天数: N」。
四、样例(轻量档质量闸:≥2 · 1 常见 + 1 边界)
常见样例(逐字取自 _selftest/run.py 实测)——2026-10-01 ~ 2026-10-10 → 工作日天数: 7;追加假日 2026-10-07 → 工作日天数: 6。
边界样例(缺陷修复锁死):库路径 2026-10-05 ~ 2026-10-09 扣 2026-10-07——传字符串 "2026-10-07"=4、传列表 ["2026-10-07"]=4、传 date(2026,10,7)=4,三态一致;多假日 ["2026-10-07","2026-10-06"]=3。
> 修复复验口径:本件曾存"字符串假日被静默忽略"高危缺陷(真实场景复验坐实),已修并双重复验——①Node.js 异语言独立裁判与工具对拍 16=16 全等;②自测库路径假日三态归一 4 断言全 PASS。验证过程与裁判方法公开可复算(复验回执+靶场在盘)。
五、升档口子(强制)
本件只做单点检测/计算。遇到更复杂场景,结果页给出升级路径:
> 升级件:本件只做标准工作日天数单点计算;含调休补班规则、多套排班制或复杂假期政策的场景不在本件范围,请升中档或人工核定。
形成「轻量快检(免费·0元引流)→ 中档/高档」的引流闭环。
六、边界(严格遵守)
- 只读/不出网:不修改、移动、删除用户文件;无任何外部请求;
- 不猜:结果不确定时如实标注,不强行给唯一答案;
- 不越权:超出单点范围即升档,不硬撑。
<!--免责豁免开始-->
七、四防声明
- 防泄露:本件无密钥、无私有数据、无后门;全部逻辑即包内脚本,无隐藏文件。
- 防转发:本件为免费引流件,请从官方渠道获取,转发请保留本声明。
- 防破解:纯本地实现,无鉴权绕过面;篡改重打包与本源件指纹不符。
- 防抄袭:原创性指纹见 references/_fingerprint_evidence.md,AS-IS。
八、免责与责任(免责声明·豁免扫描区)
本工具仅提供操作辅助与流程指引,不承诺任何效果或收益;因使用本工具产生的任何直接或间接损失,责任由使用者自行承担;在法律允许的最大范围内,开发者不以任何方式承担责任(法律强制规定的责任除外)。
- 按现状(AS-IS)提供,不附带任何明示或默示保证;
- 平台规则/接口/页面变更可能导致部分功能失效,开发者无义务实时跟进;
- 输出结果仅供决策参考,重大事项(付费/合规/法律)须使用者自行复核。
<!--免责豁免结束-->