加班时长合理管控程序Overtime Guard—— 统计无效加班 · 提醒及时下班 · 守护生活边界这是一个典型的✅「用工程方法对抗系统性过劳」✅「把‘下班’变成可执行的技术动作」的创新实验案例。一、实际应用场景描述真实可落地在很多职场环境中加班已经从“例外”变成“常态”- 明明工作已结束仍习惯性坐在工位- 为了“看起来努力”而延长在线时间- 晚上 9 点后还在回消息- 周末被默认视为可加班时间长期结果- 精力透支- 创造力下降- 工作与生活边界彻底消失本程序定位为✅ 本地运行的加班监控工具✅ 记录上下班时间✅ 自动识别“无效加班”✅ 给出下班提醒与边界建议二、引入痛点工程 行为双视角痛点 技术映射加班无感知 时间戳建模无法区分有效/无效加班 规则引擎缺乏下班仪式感 提醒机制数据不可见 本地日志工具过重 CLI JSON 问题本质不是“工作时间长”而是缺乏边界反馈系统。三、核心逻辑讲解工程视角1️⃣ 时间建模- 上班打卡时间- 下班打卡时间- 标准工作时长如 8 小时2️⃣ 加班判定- 正常加班有明确任务说明- 无效加班超时且无实质产出说明3️⃣ 提醒策略- 接近标准时长 → 温和提醒- 超过阈值 → 强提醒4️⃣ 数据沉淀- 每日记录- 周度汇总- 用于自我观察而非考核四、代码实现模块化 清晰注释 项目结构overtime-guard/├── main.py├── config.py├── clock.py├── analyzer.py├── notifier.py├── storage.py├── data/│ └── records.json└── README.md✅ config.py加班管控规则配置STANDARD_HOURS 8MAX_REASONABLE_HOURS 10REASONS_REQUIRED True # 超时是否需要原因✅ clock.pyfrom datetime import datetimedef now_time():return datetime.now()def duration(start, end):delta end - startreturn delta.total_seconds() / 3600✅ analyzer.pyfrom config import STANDARD_HOURS, MAX_REASONABLE_HOURSdef analyze_session(start, end, reason):分析一次工作会话hours duration(start, end)if hours STANDARD_HOURS:return ✅ 正常工时elif hours MAX_REASONABLE_HOURS:return ⚠️ 合理加班 if reason else ❌ 无效加班无原因else:return 过度加班高风险✅ notifier.pydef remind(hours):if hours 9:print(⚠️ 已接近 9 小时请准备结束工作)if hours 10:print( 已超过 10 小时建议立即下线)✅ storage.pyimport jsonimport osfrom datetime import datetimeDATA_FILE data/records.jsondef ensure_file():if not os.path.exists(DATA_FILE):with open(DATA_FILE, w, encodingutf-8) as f:json.dump([], f)def save_record(start, end, status, reason):ensure_file()record {date: datetime.now().date().isoformat(),start: start.isoformat(),end: end.isoformat(),status: status,reason: reason}with open(DATA_FILE, r, encodingutf-8) as f:data json.load(f)data.append(record)f.seek(0)json.dump(data, f, ensure_asciiFalse, indent2)✅ main.pyfrom datetime import datetimefrom clock import now_time, durationfrom analyzer import analyze_sessionfrom notifier import remindfrom storage import save_recorddef main():print( 加班时长合理管控工具\n)print(请输入上班时间HH:MM)start_str input()start datetime.combine(datetime.today(),datetime.strptime(start_str, %H:%M).time())input(按回车模拟下班打卡...)end now_time()hours duration(start, end)reason if hours 8:reason input(请输入加班原因如无请留空)status analyze_session(start, end, reason)remind(hours)print(f\n 今日状态{status})save_record(start, end, status, reason)if __name__ __main__:main()五、README 与使用说明README.md# Overtime Guard## 简介一个轻量级加班管控工具用于统计无效加班、提醒及时下班帮助守护个人生活边界。## 特点- 本地运行无数据上传- 不用于绩效考核- 适合个人自我管理## 使用方法1. 安装 Python 3.92. 运行python main.py3. 输入上下班时间## 数据存储所有记录保存在data/records.json六、核心知识点卡片类别 内容Python 基础 datetime、函数时间建模 工作会话抽象规则引擎 加班判定逻辑行为设计 提醒与边界工程思维 配置解耦社会议题 劳动健康与技术伦理七、总结工程师视角这个程序不是“反加班神器”而是一个让你重新获得时间感知的实验工具。它的价值不在于阻止加班而在于✅ 让加班变得可见✅ 让“无效加班”无处藏身✅ 让下班重新成为一个被尊重的动作技术不该只服务于效率最大化也应该服务于人的可持续存在。利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛