根据以上文件编写任务2但是不能和任务一的代码一样但是运行结果要一样且时间间隔也是一分钟
时间: 2024-09-11 22:11:10 浏览: 37
为了实现任务2的功能,同时避免代码重复并保持同样的运行效果(即每分钟提醒用户进行微哨打卡),我们可以采用不同的逻辑来构建程序。这里提供一种不同于原参考代码的方法:
```python
# coding=utf8
import datetime
import time
def reminder():
"""此函数用于输出打卡提醒消息"""
print(f"{datetime.datetime.now()} 别忘了,该去微哨打卡了!")
def check_time_and_remind(hour, minute):
"""
此函数检查当前时间是否达到指定的时间点,
如果达到了,则执行一次提醒。
"""
while True:
current = datetime.datetime.now()
# 当前时间和目标时间仅比较小时和分钟部分
if current.hour == hour and current.minute == minute:
reminder()
# 设置下次提醒时间
next_reminder = current.replace(second=0, microsecond=0) + datetime.timedelta(minutes=1)
# 等待直到下次提醒时间
while datetime.datetime.now() < next_reminder:
time.sleep(1)
else:
# 如果还没到指定时间,每秒钟检查一次
time.sleep(1)
def main(hour=9, minute=8):
"""主函数入口"""
check_time_and_remind(hour, minute)
if __name__ == "__main__":
main()
```
这个版本通过不断检查当前时间是否匹配预设的时间点来触发提醒,并通过设置下一个提醒时间为当前时间加上一分钟的方式来实现精确的一分钟间隔提醒。这样做的好处是我们不需要内层循环来逐分钟地确认时间是否改变,而是利用Python的`datetime`模块提供的方法来进行更高效的时间管理。
阅读全文