【学习工作赛道】工时精灵 - 单双休自动统计工具

大家好,我是一名后端开发工程师,主要做中台和财务系统对接开发。

说来惭愧,虽然天天写代码,但每到发薪日统计自己上个月出勤天数,工时这件事,我一直是用 Excel 手工数的。我们公司实行单双休(一周单休一周双休轮着来),再加上法定节假日调休,每个月的天数都不一样,手工数真的很容易出错。

这次用 TRAE 做这个工具,最大的感受是:它真的能听懂"人话"。我不用先想好用什么技术栈、怎么设计架构,直接把痛点讲清楚——“我每个月要手工数出勤天数,单双休轮转加上节假日太麻烦了”——TRAE 就能帮我一步步拆解、实现、调试。中间遇到 Excel 公式在 LibreOffice 里不兼容的问题,我贴报错给它,它自己就能定位原因(比如 LET 函数不支持)并给出替代方案。这种"你说问题,它给解法"的配合方式,让我这个习惯了写后端接口的人,也能轻松做出一个前端交互式工具。

Demo 简介
是什么: 一个基于网页的工时记录与统计工具(纯 HTML + JavaScript,无需后端,浏览器打开即用)。

面向谁: 实行单双休轮休制度的职场人士,尤其是需要在发薪日核对出勤天数、按项目统计工时占比的开发者/项目经理。

主要功能:

一键生成当月工作日 —— 根据单双休轮转规则 + 2026年法定节假日 + 调休补班数据,自动生成当月所有工作日记录,并智能识别"节后首周单休"规则。

生成工作日-预览

项目维度工时统计 —— 每天填写参与的项目名称,月度自动汇总各项目天数占比,支持条形图和饼图可视化。

月度汇总-图表

明细记录管理 —— 支持按月份/项目筛选、 inline 编辑日期和项目、导出 CSV,所有数据本地存储,刷新不丢失。

明细记录

Demo 创作思路
灵感来源: 每到发薪日,我要打开 Excel 手工核对上个月出勤天数。单双休轮转本身就不直观(这周是单休还是双休?),再加上节假日调休(放假后第一周强制单休),每个月都得重新算一遍,既耗时又容易出错。

想解决的问题:

单双休轮转 + 节假日调休的规则复杂,手工统计易出错
传统 Excel 模板公式复杂、兼容性差(LibreOffice 打不开 LET 函数)
想知道每个月在各个项目上花了多少时间,但没有好用的工具
为什么做这个方向:

这是一个高频痛点:每个月发薪都要做一次
规则明确但繁琐:单双休有固定轮转逻辑,节后首周单休有明确规则,非常适合自动化
受众广泛:国内大量企业实行单双休制度,这个痛点不止我一个人有

Demo 体验地址
交互式 HTML 文件(Zip 打包上传):

附件:timesheet-demo.zip(包含 index.html,解压后浏览器直接打开即可体验)

体验说明:

打开后会自动加载 2026年6月的演示数据(含端午节假期处理)
点击顶部「加载演示数据」可重新加载,「清空所有数据」可清空
点击「生成工作日」体验单双休自动识别功能
切换到「月度汇总」和「图表」Tab 查看统计结果

TRAE 实践过程
整体开发流程
整个 Demo 的开发经历了 Excel 模板迭代 → HTML 交互版 两个阶段,共 5 个版本迭代:

第一步:需求拆解与 Excel 模板 V1
向 TRAE 描述痛点后,它建议先用 Excel 模板验证逻辑。我说明了规则:

单双休轮转:奇数周双休(周六休息),偶数周单休(周六上班)
节假日后第一周强制单休
只统计天数,不统计小时数
TRAE 用 openpyxl 生成了第一版 Excel 模板,包含设置页和明细页,使用 WEEKDAY、INT、COUNTIF 等公式实现自动判断。

4355640304077575:d380014b0f8c2957a92e0080a1ade242_6a2a260393ea5f57ecb570ca.6a2a2c5d93ea5f57ecb57245.6a2a2c5d93ea5f57ecb57243:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/6/11 11:32:45)

4355640304077575:1f36f6f24e41252f537346af078e5a86_6a2a260393ea5f57ecb570ca.6a2a325e93ea5f57ecb5735c.6a2a325e93ea5f57ecb5735a:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/6/11 11:58:22)

第二步:公式兼容性修复(V2-V3)
Excel 模板在 LibreOffice 中打开后出现大量公式错误。TRAE 逐一排查:

LET 函数不支持 → 替换为隐藏辅助列
SUMPRODUCT + DATEVALUE 空单元格报错 → 改用整数天数存储
COUNTIF 混合空值报错 → 改用 IFERROR(MATCH(…))
节后首周检测 → 在设置页增加辅助计算区域
每个错误都是贴报错信息给 TRAE,它定位原因并给出修复方案,反复迭代直到零错误。

第三步:简化交互(V4-V5)
用户反馈 Excel 下拉框无法选择、不需要工时列。TRAE 调整方案:

移除数据验证下拉框,改为自动生成日期 + 手动输入项目名
移除工时列,一行 = 一天
增加"是否出勤"判断逻辑

第四步:HTML 交互版 Demo
将 Excel 逻辑迁移到纯前端实现:

用 JavaScript 重写单双休轮转算法(computeWorkdays 函数)
内置 2026 年全部法定节假日和调休补班数据
增加 Chart.js 图表可视化、CSV 导出、localStorage 持久化
预加载演示数据,打开即有内容展示

timesheet-demo.zip (8.5 KB)

4355640304077575:a3be74b686a24eb534ce1277d7c39546_6a2a260393ea5f57ecb570ca.6a2a4c0593ea5f57ecb573e5.6a2a4c0593ea5f57ecb573e3:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/6/11 13:47:49)

4355640304077575:dfd4229d6080fe831d82c5a0a5eb8dbf_6a2a260393ea5f57ecb570ca.6a2a4e6593ea5f57ecb574e6.6a2a4e6593ea5f57ecb574e4:TRAE Work CN.0.1.30.no_sid.no_ppe.T(2026/6/11 13:57:57)

关键技术实现
单双休轮转核心算法:
每周判断逻辑:

  1. 该周含节假日 → 下一周强制单休

  2. 否则 → 单休/双休交替轮转

  3. 单休周:周一至周六上班,周日休息

  4. 双休周:周一至周五上班,周六周日休息

  5. 调休补班日 → 强制上班

  6. 法定节假日 → 强制休息
    节假日数据处理: 内置 2026 年 7 个法定节假日(元旦、春节、清明、劳动节、端午、中秋、国庆)的放假日期和调休补班日期,共计 35 天放假 + 6 天调休补班。

  7. 对应的报名审核通过的帖子链接

2 个赞

换个名字叫工贼秒杀器

1 个赞