news 2026/4/18 9:36:22

收集自己的每日玩手机时段,统计睡前玩手机时长,输出减少睡前玩手机的建议。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收集自己的每日玩手机时段,统计睡前玩手机时长,输出减少睡前玩手机的建议。

完整输出一个可运行的 Python 项目示例,用于记录每日玩手机时段、统计睡觉前玩手机时长、输出减少睡前玩手机的建议。

1. 实际应用场景描述

现代人几乎离不开手机,尤其是在睡前刷社交媒体、看视频、玩游戏,容易导致睡眠时间推迟、睡眠质量下降。

很多人意识到这个问题,但缺乏具体数据来量化睡前玩手机的时长,也无法制定有效的改善计划。

本程序基于大数据与智能管理课程中的数据采集、时间分析与行为优化方法,帮助用户记录每日玩手机的时间段、自动统计睡觉前玩手机的时长,并根据数据给出减少睡前玩手机的建议,从而改善睡眠习惯。

2. 痛点分析

- 无数据记录:睡前玩手机的时间往往是模糊记忆,无法精确统计。

- 习惯难改:缺乏客观数据,难以制定针对性的改善计划。

- 影响健康:长时间睡前玩手机可能导致入睡困难、睡眠质量差。

- 手动统计麻烦:人工计算每天睡前玩手机时长费时且易错。

3. 核心逻辑讲解

1. 数据采集:用户输入每天玩手机的开始时间和结束时间(可扩展为从手机屏幕使用时间 API 导入)。

2. 数据存储:用 CSV 文件存储日期、开始时间、结束时间。

3. 睡前时段定义:假设用户睡觉时间为 23:00,则 22:00–23:00 为“睡前时段”。

4. 重叠计算:计算玩手机时间段与睡前时段的交集,得到睡前玩手机时长。

5. 建议生成:根据平均睡前玩手机时长,给出减少建议(如提前半小时放下手机、开启夜间模式等)。

4. 代码模块化

项目结构

phone_usage_tracker/

├── main.py

├── usage_data.py

├── analyzer.py

├── advisor.py

└── README.md

"usage_data.py"

# 手机使用数据模块

import csv

from datetime import datetime

DATA_FILE = "phone_usage.csv"

def init_data_file():

"""初始化 CSV 文件"""

try:

with open(DATA_FILE, 'x', newline='') as f:

writer = csv.writer(f)

writer.writerow(["date", "start_time", "end_time"])

except FileExistsError:

pass

def add_record(date_str, start_str, end_str):

"""添加一条手机使用记录"""

with open(DATA_FILE, 'a', newline='') as f:

writer = csv.writer(f)

writer.writerow([date_str, start_str, end_str])

def load_records():

"""加载所有记录"""

records = []

try:

with open(DATA_FILE, 'r') as f:

reader = csv.DictReader(f)

for row in reader:

records.append({

"date": datetime.strptime(row["date"], "%Y-%m-%d"),

"start": datetime.strptime(row["start_time"], "%H:%M").time(),

"end": datetime.strptime(row["end_time"], "%H:%M").time()

})

except FileNotFoundError:

pass

return records

"analyzer.py"

# 分析模块

from datetime import datetime, time

BEDTIME_START = time(22, 0) # 睡前时段开始

BEDTIME_END = time(23, 0) # 睡前时段结束

def time_to_minutes(t):

"""将 time 对象转换为分钟数"""

return t.hour * 60 + t.minute

def minutes_to_time(m):

"""将分钟数转换为 time 对象"""

return time(m // 60, m % 60)

def calculate_bedtime_usage(record):

"""

计算单条记录的睡前玩手机时长(分钟)

"""

start_min = time_to_minutes(record["start"])

end_min = time_to_minutes(record["end"])

bed_start_min = time_to_minutes(BEDTIME_START)

bed_end_min = time_to_minutes(BEDTIME_END)

# 如果整个玩手机时段在睡前时段外

if end_min <= bed_start_min or start_min >= bed_end_min:

return 0

# 计算交集

overlap_start = max(start_min, bed_start_min)

overlap_end = min(end_min, bed_end_min)

if overlap_end <= overlap_start:

return 0

return overlap_end - overlap_start

"advisor.py"

# 建议模块

def generate_advice(avg_bedtime_minutes):

"""

根据平均睡前玩手机时长生成建议

"""

if avg_bedtime_minutes == 0:

return "太棒了!睡前没有玩手机,继续保持好习惯。"

elif avg_bedtime_minutes <= 15:

return "睡前玩手机时间较少,建议进一步减少到 0 分钟,提升睡眠质量。"

elif avg_bedtime_minutes <= 30:

return "睡前玩手机时间适中,建议提前半小时放下手机,改用阅读或冥想放松。"

elif avg_bedtime_minutes <= 60:

return "睡前玩手机时间较长,建议设置手机夜间模式,并逐步减少使用时长。"

else:

return "睡前玩手机时间过长,严重影响睡眠,建议制定严格的睡前无手机计划,如使用闹钟代替手机。"

"main.py"

# 主程序入口

from usage_data import init_data_file, add_record, load_records

from analyzer import calculate_bedtime_usage

from advisor import generate_advice

def main():

init_data_file()

# 示例数据录入(实际应用中可改为用户输入或API导入)

sample_data = [

("2026-01-12", "21:30", "23:30"),

("2026-01-13", "22:10", "23:45"),

("2026-01-14", "20:00", "21:00"),

("2026-01-15", "22:45", "00:30"),

("2026-01-16", "21:50", "23:10")

]

for date_str, start_str, end_str in sample_data:

add_record(date_str, start_str, end_str)

records = load_records()

total_bedtime_minutes = 0

for rec in records:

mins = calculate_bedtime_usage(rec)

total_bedtime_minutes += mins

print(f"{rec['date'].date()} 睡前玩手机时长: {mins} 分钟")

avg_bedtime_minutes = total_bedtime_minutes / len(records) if records else 0

print(f"\n平均睡前玩手机时长: {round(avg_bedtime_minutes, 2)} 分钟")

advice = generate_advice(round(avg_bedtime_minutes))

print(f"建议: {advice}")

if __name__ == "__main__":

main()

5. README.md

# Phone Usage Before Bed Tracker

一个基于 Python 的睡前手机使用分析工具,可统计每天睡前玩手机时长并给出减少建议。

## 功能

- 记录每日玩手机时间段

- 自动计算睡前玩手机时长

- 输出平均睡前使用时长

- 根据数据生成减少睡前玩手机的建议

## 使用方法

1. 克隆或下载本项目

2. 确保已安装 Python 3.x

3. 运行:

bash

python main.py

## 项目结构

- `main.py`:主程序入口

- `usage_data.py`:数据读写

- `analyzer.py`:睡前时长计算

- `advisor.py`:建议生成

## 扩展方向

- 接入手机屏幕使用时间 API 自动导入数据

- 支持自定义睡前时段

- 使用 Matplotlib 绘制睡前使用时长趋势图

6. 使用说明

1. 运行

"main.py" 会自动创建

"phone_usage.csv" 并写入示例数据。

2. 可修改

"sample_data" 为真实使用记录。

3. 程序会输出每天睡前玩手机时长、平均值及建议。

4. 后续可扩展为交互式输入或图形界面。

7. 核心知识点卡片

知识点 说明

CSV 文件操作 用

"csv" 模块实现数据持久化

时间处理 使用

"datetime.time" 和分钟转换进行时间区间计算

区间交集算法 计算两个时间区间的重叠部分

规则建议引擎 根据数据阈值生成行为建议

模块化设计 数据、分析、建议分离,便于维护

大数据思维 从日常行为数据中量化问题,指导行为优化

8. 总结

本项目将大数据与智能管理课程中的数据采集、时间分析、行为优化方法应用于个人健康管理,解决了睡前玩手机时长无法量化、习惯难改的痛点。

通过模块化设计和清晰的分析逻辑,用户可以快速了解自己的睡前手机使用情况并获得针对性建议。未来可结合机器学习预测使用趋势,并接入真实手机数据,打造完整的数字健康助手。

如果你愿意,可以加上 Matplotlib 可视化睡前使用时长趋势折线图,让变化更直观。

利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 0:30:02

FIR+IIR数字滤波器(数字滤波器)语音信号处理Matlab(程序+报告)(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

FIRIIR数字滤波器(数字滤波器)语音信号处理Matlab(程序报告)(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 1、资料内容:Matlab程序48页说明报告程序运行详细操作说明 2、建立了基于FIR和IIR数字滤波器的语音去噪系统。该系统…

作者头像 李华
网站建设 2026/4/18 0:28:39

PHP如何实现跨平台大文件上传的示例代码?

[2023年1月1日] [星期一] [天气] 作为一名在上海独自打拼的个人开发者&#xff0c;最近接到了一个颇具挑战性的项目需求——大文件上传系统的开发。这可不是个简单的活儿&#xff0c;客户要求系统得支持 20G 左右的大文件传输&#xff0c;不仅要能上传单个文件&#xff0c;还得…

作者头像 李华
网站建设 2026/4/18 0:27:16

qt之pro配置条件编译

例如pro添加以下这句代码: DEFINES PS600表示你工程有定义PS600 测试此时会提示编译报错

作者头像 李华
网站建设 2026/4/17 20:39:43

基于Springboot+Vue的Java的旅游民宿网络营销系统(源码+lw+部署文档+讲解等)

课题介绍本课题旨在设计并实现一套基于SpringBootVue的Java旅游民宿网络营销系统&#xff0c;以解决民宿商家营销渠道单一、客群触达精准度低、推广内容传播弱、营销数据统计滞后等痛点&#xff0c;搭建民宿商家与潜在游客的高效营销对接平台&#xff0c;实现民宿推广数字化、营…

作者头像 李华
网站建设 2026/4/18 1:11:48

学霸同款2026 TOP10 AI论文软件:本科生毕业论文神器测评

学霸同款2026 TOP10 AI论文软件&#xff1a;本科生毕业论文神器测评 2026年AI论文写作工具测评&#xff1a;为本科生量身打造的高效助手 随着人工智能技术的不断发展&#xff0c;AI写作工具在学术领域的应用日益广泛。对于本科生而言&#xff0c;撰写毕业论文不仅是一项重要的…

作者头像 李华