编写程序统计一天各类情绪的时长占比,预留稳定,平和的时间段作为核心创作时段
情绪时长统计与核心创作时段规划工具 —— 用数据找到你的最佳状态项目定位一个 Python 工具帮你记录一天中每段情绪的起止时间自动统计各类情绪时长占比并识别出稳定/平和的核心创作窗口。适用人群修读心理健康与创新能力课程的学生、希望用数据驱动时间管理的开发者。技术栈Python 3.8仅依赖matplotlib 做可视化。一、实际应用场景描述假设你是一个正在赶期末项目的计算机系学生也是一名独立开发者你从早上 8 点开始写代码前两个小时状态极佳代码如飞。11 点半收到导师一条消息指出方案有问题瞬间焦虑。午饭后昏昏欲睡下午 2 点勉强恢复平和3 点到 5 点又进入专注状态。晚上本想继续写文档但 7 点开始越来越疲惫最终刷手机到 10 点。问题来了你每天有 14 个小时醒着但真正适合深度创作的窗口可能只有 4-5 个小时。如果你把写核心算法的时间安排在疲惫的晚上效率必然低下还会反过来加重自我怀疑。这个工具要解决的就是帮你 量化情绪分布 → 发现创作高峰 → 科学排程。二、引入痛点痛点 表现 后果情绪黑箱 只记得今天状态不好说不出具体时段 无法针对性调整作息和任务安排创作时机错位 在焦虑/疲惫时硬做高认知任务 效率低下 自我否定加重恢复被忽视 连续高强度输出不休息 情绪耗竭burnout创造力断崖式下跌数据缺失 凭感觉而非数据做时间规划 周而复始地低效循环这些痛点的本质是 缺乏对自身情绪节律的量化认知。三、核心逻辑讲解整个工具的数据流如下┌──────────────┐ ┌──────────────┐ ┌──────────────────┐│ MoodLogger │────→│ MoodAnalyzer│────→│ ReportGenerator ││ 情绪记录器 │ │ 情绪分析器 │ │ 报告生成器 │└──────────────┘ └──────────────┘ └──────────────────┘输入时段 统计分析 文本 图表输出三个核心算法1. 情绪时长聚合将离散的时段记录按情绪标签和分类高/低能量 × 正/负向分别累加计算占比2. 创作窗口识别三条件过滤 —— 情绪在白名单内平和/专注等 连续 ≥ 30 分钟 不在排除时段午休/深夜3. 质量评分模型综合情绪类型基础分 时长加成 时段加成上午 下午 晚上输出 0-100 分四、代码模块化与注释项目共 7 个文件职责清晰分离文件 职责 关键类/函数config.py 情绪分类体系、配色、阈值、路径MOOD_CATEGORIES,CREATION_WINDOW_CONFIG,CHART_COLORSutils.py 时间解析/计算、JSON 读写、百分比parse_time,time_diff_minutes,format_durationmood_logger.py 情绪时段记录与持久化MoodEntry,MoodLogger.add_entry,savemood_analyzer.py 统计分析 创作窗口识别calculate_statistics,find_creation_windowsreport_generator.py 文本报告 饼图 时间线图print_report,generate_pie_chart,generate_timeline_chartknowledge_cards.py 6 张核心知识点卡片数据KNOWLEDGE_CARDS,print_cardmain.py 命令行交互入口main,run_add_entry,run_generate_report每个文件都有完整的 模块级 docstring 说明设计意图每个类和方法都有参数类型标注和返回值说明。例如MoodEntry 类自动通过MOOD_TO_CATEGORY 映射将情绪词归类无需手动指定。五、核心知识点卡片节选项目内置 6 张知识点卡片以下是两张与创作时段规划直接相关的卡片KC-101 情绪节律Mood Rhythm情绪像潮汐有涨落规律记录才能发现节奏。人的注意力和情绪在上午 9-11 点达到高峰午后 13-15 点出现低谷。持续记录 7 天就能绘制个人情绪节律图。KC-102 心流理论Flow Theory最佳创作状态 适度挑战 × 充足能力 × 清晰目标。平和稳定的情绪是心流的前置条件——焦虑分散注意力过度放松缺乏驱动力。完整 6 张卡片涵盖情绪节律、心流理论、时间块管理、情绪粒度、超量恢复、认知能量管理。六、使用说明环境准备pip install matplotlib # 仅此一个第三方依赖快速启动unzip mood_time_tracker.zipcd mood_time_trackerpython main.py交互流程[1] 添加情绪时段记录 ← 输入情绪 起止时间[2] 查看已记录的情绪时段[3] 查看情绪时长统计 ← 各类情绪占比 能量维度分布[4] 查看核心创作时段推荐 ← 自动标注黄金创作窗口[5] 生成完整日报 ← 终端报告 PNG 图表[6] 加载指定日期的记录[0] 保存并退出作为模块调用from mood_logger import MoodLoggerfrom mood_analyzer import MoodAnalyzerfrom report_generator import ReportGeneratorlogger MoodLogger()logger.add_entry(专注, 09:00, 11:00)logger.add_entry(平和, 13:30, 15:00)analyzer MoodAnalyzer(logger.get_entries())stats analyzer.calculate_statistics()windows analyzer.find_creation_windows()reporter ReportGenerator(logger.get_entries(), stats, windows)reporter.print_report()reporter.generate_all_charts() # 生成饼图 时间线图七、输出示例终端统计报告效果══════════════════════════════════════════════════════ 情绪时长统计报告══════════════════════════════════════════════════════总记录时长: 13小时30分钟最高频情绪: 疲惫创作适宜度: 100/100── 按情绪分类 ──疲惫 ████████████████ 33.3% (4小时30分钟)专注 ████████████ 25.9% (3小时30分钟)平和 ███████████ 22.2% (3小时)放松 █████ 11.1% (1小时30分钟) 核心创作时段推荐[1] ⏰ 08:30 - 10:00 专注 质量:100 ⭐ 黄金创作时段[2] ⏰ 15:00 - 17:00 专注 质量:100 ⭐ 黄金创作时段[3] ⏰ 10:00 - 11:30 平和 质量:95 ⭐ 黄金创作时段同时自动生成两张 PNG 图表mood_pie.png情绪占比饼图和mood_timeline.png情绪时间线柱状图绿色阴影标注创作窗口。八、总结这个工具的核心价值不在于代码有多精巧而在于它把情绪管理这件事 从模糊的感受变成了可量化的数据。作为开发者我们习惯用性能分析工具看 CPU 占用、内存泄漏、函数耗时——却很少用同样的科学态度审视自己的 心理能量分配。三句总结1. 记录即觉察 —— 持续 7 天记录你会惊讶于自己的情绪节律有多规律2. 匹配即高效 —— 把最重要的创作任务放进最高质量的情绪窗口产出翻倍的不是时间而是匹配度3. 休息即投资 —— 工具会诚实地告诉你疲惫占比 33%提醒你该休息了而不是硬撑数据和代码会过时但了解自己这件事值得用一生去迭代。利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛