10、⏰时间函数能干嘛?我们用它搞个定时脚本自动提醒

0 阅读2分钟

🕒 时间模块不是用来看时间的,是用来统治时间的! 今天我们来实战 timedatetimeschedule,打造一个自动提醒系统


✅ 本文目标

  • 掌握 timedatetime 的使用方式与差异
  • 理解格式化时间字符串
  • 编写一个定时提醒脚本(支持间隔/指定时间执行)
  • 实战构建“番茄工作法”提醒工具

🧠 一、time 模块:基础时间戳与睡眠控制

import time

print(time.time())       # 当前时间戳(秒)
print(time.ctime())      # 字符串时间:Mon Jul 1 10:23:45 2025
print(time.localtime())  # 时间元组

image.png

✅ 延迟执行:sleep

print("3秒后执行")
time.sleep(3)
print("到了!")

image.png

📅 二、datetime 模块:更强大的日期处理工具

from datetime import datetime, timedelta

now = datetime.now()
print(now) 

# 获取今天、昨天、明天
today = datetime.today()
yesterday = today - timedelta(days=1)
tomorrow = today + timedelta(days=1)

image.png

🎯 格式化时间输出

print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 2025-07-02 11:35:42

⌛ 字符串转时间对象

dt = datetime.strptime("2025-07-01 09:00:00", "%Y-%m-%d %H:%M:%S")

🔁 三、schedule 模块:人类可读的定时器神器

pip install schedule
import schedule
import time

def job():
    print("🔔 每5秒执行一次")

schedule.every(5).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

image.png

🧪 实战:番茄工作法提醒器(25分钟专注 + 5分钟休息)

def focus():
    print("🍅 开始专注25分钟...")
    time.sleep(25 * 60)
    print("🔔 休息5分钟!")
    time.sleep(5 * 60)

schedule.every().hour.at(":00").do(focus)

print("番茄工作法提醒器启动中...")
while True:
    schedule.run_pending()
    time.sleep(1)

如果调试阶段,可将 25 * 60 改成 10 秒,快速测试。


📥 BONUS:每天固定时间提醒 + 多任务调度

def morning_reminder():
    print("🌞 早安!记得喝水 + 读10页书")

def evening_check():
    print("🌙 今天完成任务了吗?准备睡觉吧")

schedule.every().day.at("08:00").do(morning_reminder)
schedule.every().day.at("22:30").do(evening_check)

📦 项目封装建议

  • 使用 threading.Thread 让提醒在后台执行
  • 将提醒内容放入配置文件(如 JSON / YAML)
  • 用日志记录提醒触发历史

💡 拓展挑战

  1. 加入微信/钉钉 API 实现自动消息推送
  2. 用 GUI(如 tkinter)做一个“桌面版提醒器”
  3. 编写“生日提醒器”、“账单到期提醒器”等功能

🧠 总结一句话

时间模块不是用来看时间,而是让你的代码学会掌控时间、触发行为、实现自动化