【deepseek实战·23】拼假计算器:把 5 天年假,拼成 15 天连休

开篇回顾

每年 11 月国务院发布次年节假日安排的那天,打工人的朋友圈会统一刷屏------然后开始扒拉日历:"我年假还剩 5 天,到底怎么请最值?"22 期预告说要做个打工人仪表盘,选题的时候把它换成了更刚需的形态:不倒计时了,直接算------拼假计算器 。内置 2026 年官方节假日和调休安排,输入你的年假余额,它把全年所有拼假方案全部枚举出来:请几天、哪几天、连休多长、哪天回岗、值不值。四轮对话、~653 积分(跑完这期,账户余额正好清零),照旧全程在造物台完成。

引子

拼假是个典型的"人脑算不动、程序一秒算完"的问题:7 个法定假日、6 个补班日、52 个周末、N 天年假,组合空间爆炸,人只能凭感觉试两三种。但它本质又是个离散枚举问题 ------把日历摊平成"休/班"二值数组,从每个假日锚点向两边扩散,预算内吃掉工作日,就是全部方案。更妙的是 2026 年这张日历本身就有彩蛋:中秋节 9/25(周五)紧挨国庆 10/1,中间只隔 3 个工作日------请 3 天,连休 13 天。这种"官方埋的桥"不该靠人肉发现。

幕一 · 一句话需求,先拍五条板

新建对话,需求原样发出:

"做一个拼假计算器:内置 2026 年中国法定节假日和调休安排(以国务院发布为准),自动连上周末算出每个假期的自然连休天数;输入年假余额(比如 5 天),枚举所有'请 1~N 天年假'能拼出的连休方案,按连休天数从长到短列出(请假日期、连休起止、共几天、回岗日);纯前端,不用登录":

精细模式的深度思考这次干了件关键的事:先审数据 。AI 明确拍板------春节按官方 9 天算(2/15--2/23),唯一采信国务院《关于 2026 年部分节假日安排的通知》(国办发明电〔2025〕7 号),"不采信网上'春节 7 天/8 天'的旧说法"。我拿到记录后交叉验证了它的数据:七个假期的星期数全部对得上,中秋 9/25、端午 6/19、春节正月初一 2/17 也和农历吻合------这份"唯一采信官方文件"的较真,直接决定了后面所有计算的地基。另外四条拍板同样在点:一个方案 = 一条最长连休 (同一条连休只留请假最少的版本,不列浪费假的组合);元旦允许向前借 2025 年末 (不借根本没得拼);补班日当工作日 (可以请年假把补班日变回休息------这条后面有惊喜);只列和法定假日相连的连休(纯凑周末不算拼假)。

709 秒后第一版交货(~106 积分):三个文件,页面是"年假输入 + 假日概览 + 最优方案 + 请 k 天对照表 + 全部方案列表"的经典工具布局。

幕二 · 第一版:输入 5,吐出 134 个方案

第一版成品:

预览运行界面,节假日概览每个假日都标了连休天数、回岗日和补班日:

输入年假 5 天,最优方案直接顶到 hero 位:春节请 2/24--2/28 五天(其中 2/28 本是补班周六),2/15 一路休到 3/1,连休 15 天。下面那张"请 k 天 → 最长连休"对照表是全页最毒的一眼:请 1 天休 10 天、请 3 天休 13 天、请 5 天休 15 天。初始版演示:

到这里"能算"成立。但一个要发到群里用的工具还差三块:数据要能自己改、方案要一眼看懂、决策要能对比分享。三轮迭代分别补齐。

幕三 · 三轮迭代:数据可编辑 → 月历条与性价比 → 对比与分享卡

迭代 1:节假日数据可编辑。 这轮解决的是所有"内置数据型工具"的宿命问题------数据总有过时或跟公司对不上的一天。AI 的答案是双轨制 :官方默认数据打底,用户改过的版本存 localStorage 覆盖(pj2026.holidays.v1),"数据有误自己改,不依赖别人更新"。编辑弹窗做成草稿式:改的是副本,点「保存并应用」才真正写入并重算全部方案,直接关掉就是丢弃;支持改名称/emoji/起止日期、增删补班日、整条删除、新增公司自定义假,保存前还有校验(名称非空、日期合法、开始≤结束);「恢复官方默认」一键还原。日历窗口会随数据自动扩缩,自定义假日超出 2026 时两端各延 40 天:

迭代 2:月历条与性价比。 每个方案下方加一条日历条,连休区间里每一天一个小格,按身份三色高亮------🟧 节假日、🟩 周末、🟦 请假日;补班日被年假抵消,按"请假日"着色 ,图例里专门注明。跨月自动插"X月"标签(中秋国庆桥正好横跨 9/10 月,标签派上用场)。性价比公式钉死:连休天数 ÷ 请假天数,保留一位小数,hero 里配一句"每请 1 天年假 ≈ 休 X 天"。还有一键复制请假申请文案------固定四行:请假日期、连休安排、回岗日期,点完按钮变"✅ 已复制",剪贴板被浏览器拦了还有手动复制的兜底:

迭代 3:方案对比与分享卡。 每个方案行加「对比」勾选框,收藏进 hero 下方的对比栏(最多 3 个并排,第 4 个弹提示;改年假天数自动清空------因为方案 id 全变了)。hero 加「🖼️ 生成分享卡」:canvas 画一张青绿渐变的竖版卡------连休天数大字 + 起止 + 请假/回岗/性价比 + 三色日历条 + 按性价比分档的建议语(≥4 是"性价比超高",≥3 是"请得值",以此类推)+ 数据来源脚注,弹窗预览、一键保存 PNG:

最终版演示(滚动看方案列表和月历条):

这轮还有个值得记录的细节:AI 每轮交付结尾都会说同一句话------"我看不到页面实际渲染效果,麻烦你点几下,有不对的地方把具体现象发我,我来修"。四轮,一次没漏。它清楚自己写的是代码不是像素,交付后主动把验证权交回来。而我把成品页面用 Playwright 实测了一遍:134 个方案、对照表、月历条、复制、对比全部正常,无 console 错误------这期同样无返修。

🔧 技术拆解

从对话记录里,我提炼出 5 个值得带走的技术点:

  1. 锚点扩散枚举:把模糊需求变成离散问题 。算法核心三步:把 2025-10-01~2026-12-31 摊平成逐日的"休/班"数组;每个法定假日作为锚点 ,向左向右扩散,数出要吃掉的工作日数(预算 N 内的所有前缀/后缀);左右组合做笛卡尔积,1 ≤ 左+右 ≤ N 的都是合法方案。中秋+国庆这种连桥会从两个锚点各生成一次,靠"起止区间去重 + 合并假日名"收口。最后按连休天数降序、请假天数升序排。需求里没有一句"怎么算",算法是 AI 从"枚举所有方案"里反推出来的------这类问题建模能力比写代码本身值钱。
  2. 补班日是可抵消的工作日------全场性价比之王藏在这 。数据模型里只有两种日子:休息(isOff)和工作日,补班日的本质是"落在周末的工作日"。所以请年假可以把它变回休息。这一条规则直接产出全表最惊人的方案:请 2/14(春节前的补班周六)1 天,2/14 一路休到 2/23,连休 10 天,性价比 10.0------请 1 天换 10 天,比中秋国庆桥的 4.3 还高一倍多。建模时给概念选对本质属性(补班日→工作日,而不是→周末),下游会自动长出惊喜。
  3. 一个指标算,另一个指标排 。性价比 len/k 贯穿全表,但 hero 的"最优方案"按连休天数排(15 天的那个性价比只有 3.0,性价比 10.0 的方案只休 10 天)。这是刻意的产品决策:用户的目标是"休最长",性价比是参考维度不是排序键。表里两种排法都能看(hero 按长度、徽章标性价比),把决策权留给用户。指标多的时候,"谁当主键"本身就是需求。
  4. 数据双轨 + 草稿式编辑:内置数据型工具的标准答案 。任何内置数据的产品都会遇到"数据错了/过时了/跟我不一样"------拼假计算器的解法是官方默认打底 + localStorage 覆盖 + 草稿式弹窗(改副本,保存才生效)+ 一键恢复默认 + 保存前校验。把数据的最终解释权交还用户,工具的生命周期就不再绑死在作者更新上。这个模式适用于一切"内置规则可能过时"的场景:汇率、税率、节日、公司制度。
  5. 边界即决策:日历窗口为什么开到 2025-10-01 。"元旦怎么拼"这个问题逼出了一个窗口决策:只看 2026 年,元旦(1/1--1/3)前面是墙,根本没得拼;窗口向前开到 2025 年末,才有"请 2025/12/29--31 三天,连休 8 天跨年"这个方案。而其他假期又被限制"只在本年内拼",避免枚举出跨年怪物。窗口边界不是技术参数,是产品规则------定错了,算法算得再对也是错的答案。

代码视图

这期三个文件:index.html(输入卡/概览/结果区/编辑弹窗/分享卡弹窗)、style.css(青绿湖水蓝主题、hero 渐变、三色月历条、对比栏)、app.js(默认数据 + localStorage 双轨、日历构建、锚点扩散枚举、性价比/月历条/复制、对比栏、canvas 分享卡,单文件)。无 CDN、无图表库、无动效库,纯手写。

收尾

从"扒拉日历凭感觉"到一张 134 个方案的完整决策表,四轮对话(106 + 77 + 177 + 293 ≈ 653 积分),无返修------顺便一提,这个数正好是跑这期之前的全部余额,一分不剩。

🔗 点击体验我的作品拼假计算器

推荐的体验路径:输入你的真实年假余额 → 看 hero 给你的最长连休 → 重点看对照表"请 1 天"那行(性价比 10.0 的补班日彩蛋)→ 展开中秋+国庆方案看三色月历条 → 勾 2~3 个进对比栏 → 生成分享卡甩到工位群。如果你们公司的假和官方对不上,点「✏️ 编辑数据」自己改,改完存本机。因为开了『允许别人改造』,你可以复制到自己的造物台继续改------比如加个"已用年假扣减"?诚实说明:节假日数据以国办发明电〔2025〕7 号为默认,我交叉核对过星期与农历,但不保证与你的公司口径一致(所以做了可编辑);所有方案仅为日历推算,实际请假以公司审批为准;你的编辑和输入只存本机浏览器,不上传。

利益相关:造物台是作者团队的产品。本文侧重记录 AI 编程的实战过程,链接仅作可交互 demo 体验。

下期预告:假拼好了,路上玩什么?24 期做一个单手就能玩的通勤小游戏------地铁上、排队时,一只拇指搞定。

抛个问题:你敢把"请 2/14 一天、连休十天"的方案发给老板吗?评论区说说你们公司最离谱的请假被拒理由。

相关推荐
工业HMI实战笔记2 小时前
造纸行业HMI:纸机的卷取控制与质量监控界面
人工智能·交互·vr
江润舟3 小时前
万物 | 炼器 从零手搓工业级旋转目标检测网络 · 卷2 —— 计算图、梯度与反向传播(三)
人工智能·深度学习
zhurui_xiaozhuzaizai3 小时前
github上关于节省token的项目一览,上下文压缩,节省token,agent优化skill,热门项目
人工智能·深度学习·github
bullkingluo3 小时前
从零到一搭建企业级智能问答系统:Ch04 · 文档摄入与父子切片
人工智能
清 晨3 小时前
跨境社媒内容定位怎么定?用受众、场景和语言建立账号主线
大数据·人工智能·跨境电商·营销策略
长谷深风1113 小时前
Agent执行系统中的身份与版本设计
java·大数据·人工智能·ai·大模型·task·aiagent
后焊加工装家3 小时前
MS-KC716 激光精密焊线机实战应用指南
大数据·人工智能
Mr数据杨3 小时前
MTP RW多标签文本分类实战 从Kaggle练习到文本标注落地
人工智能·数据分析·kaggle竞赛
码农学院3 小时前
外贸独立站GEO实战:用 Python 自动生成多语言 llms.txt 和 Schema 站点地图
人工智能·python·chatgpt·geo·geo优化·ai优化aio