background

想着好玩,就写了个hvv工资实时统计的脚本,可以实时看到收入,可视化的感觉还是很不错的。于是就写了脚本,一开始仅仅是程序运行之后从0开始计数,每过一秒钟工资就增长一部分。后来我朋友说这逻辑不行。得自动算出累计的时间。我一听,好想法。于是乎就开始研究了。当然我全程啥也没做,全部交给GPT了,需要注意的就是这个工作时间,GPT错了很久才纠正过来。工作时间是不能按照24小时来计算的,并且还要考虑跨天的问题。

最终解决了问题,有炫酷的页面

from datetime import datetime, timedelta, time
import tkinter as tk
import random

def calculate_working_hours(start_datetime, end_datetime, work_start_time, work_end_time):
total_duration = timedelta()

current_datetime = start_datetime
while current_datetime < end_datetime:
work_start = current_datetime.replace(hour=work_start_time.hour, minute=work_start_time.minute)
work_end = current_datetime.replace(hour=work_end_time.hour, minute=work_end_time.minute)

if work_end < work_start: # 跨越了一天
work_end += timedelta(days=1)

if work_end > end_datetime:
work_end = end_datetime

work_duration = work_end - work_start
total_duration += work_duration

current_datetime += timedelta(days=1)

return total_duration

def random_color():
return "#{:02x}{:02x}{:02x}".format(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))

def update_money_label():
# 计算工资
total_working_duration = calculate_working_hours(start_datetime, datetime.now(), work_start_time, work_end_time)
total_seconds = total_working_duration.total_seconds()
money = total_seconds * 0.0277777777777 #每秒钟的收入
money_label.config(text=f"你已经挣了:{money:.2f} 元")

# 实时更新字体颜色
current_time = datetime.now().time()
if work_start_time <= current_time < work_end_time:
money_label.config(fg=random_color())
else:
money_label.config(fg=random_color())

# 每隔一段时间调用更新函数
money_label.after(1000, update_money_label)

# 创建一个 Tkinter 窗口
root = tk.Tk()
root.title("Hvv收入实时展示")

# 定义起始日期和工作时间
start_datetime = datetime(2023, 8, 9, 20, 30)
work_start_time = time(20, 30)
work_end_time = time(8, 30)

# 创建用于展示工资金额的标签
money_label = tk.Label(root, text="工资:0.00 元", font=("Helvetica", 24))
money_label.pack(pady=20)

# 启动更新函数
update_money_label()

# 启动 Tkinter 主循环
root.mainloop()

封装exe

安装库

pip install pyinstaller
pyinstaller your_script_name.py

这样生成的有黑窗口不好看,隐藏掉

pyinstaller --noconsole your_script_name.py

是不是把数字调高点,我挣钱的速度也就快了?哈哈哈哈
2023-08-18T15:20:47.png