一些python小功能

本文介绍了如何使用Python的Tkinter库创建一个定时提醒窗口,每隔一段时间弹出提示,同时提供了一个函数来生成指定日期范围的列表。
摘要由CSDN通过智能技术生成
import tkinter
import tkinter as tk
import datetime
import time



def show_reminder():
    # 创建窗口
    window = tk.Tk()

    window.title("喝水提醒")
    window.geometry("450x70+0+1050")  #设置固定位置

    # 创建标签并设置文本
    label = tk.Label(window, text="老板,记得喝水.起来走动", font=("Arial", 20),)
    label.pack(padx=50, pady=20)
    # 8秒后关闭窗口
    def toggle_label():
        if label.cget("foreground") == "red":
            label.config(foreground="black")
        else:
            label.config(foreground="red")
        label.after(200, toggle_label)
    window.after(6000, lambda: window.destroy())
    # tkinter.Toplevel().attributes('-topmost', 'true')
    #窗口置顶
    window.wm_attributes('-topmost', 'true')
    # 运行窗口
    toggle_label()
    window.mainloop()
def main(out_time):
    times_cnt=0
    show_reminder()
    while True:
        #设置不提醒时间

        # 获取当前时间
        now = datetime.datetime.now()

        # 获取下一个整点时间
        # next_hour = now.replace(minute=0, second=0, microsecond=0) + datetime.timedelta(hours=1)
        # next_hour = now + datetime.timedelta(seconds=2)
        next_hour = now + datetime.timedelta(minutes=10)
        # print(next_hour)
        # 计算下一个整点时间和当前时间的时间差
        time_diff = next_hour - now
        # print(time_diff)
        # 等待至下一个整点时间
        # print(time_diff.seconds)
        time.sleep(time_diff.seconds)

        # 显示提醒窗口
        show_reminder()
        times_cnt = times_cnt+1
        print(f"{now}  提醒第{times_cnt}次")
        # 检查当前时间是否超过设定的整点时间
        if datetime.datetime.now() > out_time:
            break


if __name__ == "__main__":
    out_time = datetime.datetime.now().replace(hour=18,minute=50,second=0)  #时间提醒时间
    # out_time = datetime.datetime.now().replace(hour=19,minute=50,second=0)  #时间提醒时间
    main(out_time)
from datetime import datetime, timedelta
import re
def day_list(start,end):
    # start_date = datetime.strptime('2022-01-28', '%Y-%m-%d')
    # end_date = datetime.strptime('2022-03-02', '%Y-%m-%d')
    # print(start_date)   #2022-01-28 00:00:00
    # print(end_date)     #2022-03-02 00:00:00

    start_date = datetime.strptime(start, '%Y-%m-%d')
    end_date   = datetime.strptime(end, '%Y-%m-%d')
    dates_list = []
    dates_list_day = []
    current_date = start_date

    while current_date <= end_date:
        formatted_date = current_date.strftime('p%Y%m%d')  #自定义日期格式化要求,%后面为控制字符
        # print(formatted_date)

        dates_list.append(formatted_date)
        dates_list_day.append(current_date.strftime('%Y-%m-%d'))
        current_date += timedelta(days=1)

    # print(dates_list)
    # print(dates_list_day)
    return dates_list_day

if __name__ == '__main__':
    a=day_list('2024-01-01','2024-01-28')
    dates_list_string =','.join(a)
    # print(dates_list_string)
    # regex =r'2023-0[6-9]-[0-9][0-9]'
    # regex =r'2024-1[0-2]-[0-9][0-9]'
    regex =r'2024-01-[0-9][0-9]'
    # regex =r'2023-1[0-2]-*'
    # regex =r'2023-(0[6-9]|1[0-2])-[0-9][0-9]'
    # regex =r'2023-(0[6-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[01])'
    matches= re.findall(regex,dates_list_string)
    print(matches)
    for match in matches:
        print(match)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值