用户:
yileke查看:0 回复:1 评论:0 创建时间:2023-05-12T21:09:55
【作品展示】

【作品介绍】
学习计划,每日定时提醒
【作品源代码】
import datetime
import time
import schedule
import subprocess
def load_tasks():
return [
{'time': '08:35', 'task': '吃早餐', 'date': '2023-05-12'},
{'time': '08:55', 'task': '读书(1小时)', 'date': '2023-05-12'},
{'time': '10:10', 'task': '开始上班', 'date': '2023-05-12'},
{'time': '15:50', 'task': '下班', 'date': '2023-05-12'},
{'time': '19:30', 'task': '健身(1.5小时)', 'date': '2023-05-12'},
{'time': '20:05', 'task': '吃晚饭', 'date': '2023-05-12'},
{'time': '20:47', 'task': '学习Python(2小时)', 'date': '2023-05-12'},
{'time': '20:49', 'task': '听BBC', 'date': '2023-05-13'},
]
class Reminder:
def __init__(self, task_item):
self.task_time = datetime.datetime.strptime(
f'{task_item["date"]} {task_item["time"]}', '%Y-%m-%d %H:%M')
self.task_desc = task_item['task']
def is_expired(self):
delta_seconds = (self.task_time - datetime.datetime.now()).seconds
return delta_seconds < 0
def create_job(self):
delta_seconds = (self.task_time - datetime.datetime.now()).seconds
if delta_seconds < 0:
print(f'Task {self.task_desc} has expired.')
else:
schedule.every(delta_seconds).seconds.do(self.trigger)
def trigger(self):
print(f'Task {self.task_desc} time is up!')
self.play_music()
def play_music(self):
command = ['afplay', '/System/Library/Sounds/Submarine.aiff']
subprocess.Popen(command)
def run_tasks():
task_list = load_tasks()
tasks = [Reminder(item) for item in task_list]
for task in tasks:
task.create_job()
while True:
schedule.run_pending()
time.sleep(1)
run_tasks()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn