-2

所以我想创建一个简单的下载 eta 计算器,这是我的代码

import PySimpleGUI as sg

layout = [[sg.Text('What is your download speed in MB/s?')],
          [sg.InputText()],
          [sg.Text('What is the size of the file in GB?')],
          [sg.InputText()],
          [sg.Submit(), sg.Cancel()]]

window = sg.Window('Window Title', layout)

event, values = window.read()
window.close()

download_speed = float(values[0])
file_size = float(values[1]) * 1024
file_size_divided = file_size/download_speed
eta_in_minutes = file_size_divided/60
eta_in_hours = eta_in_minutes/60

eta_in_hours_formatted = eta_in_hours

sg.popup('ETA in minutes', round(eta_in_minutes, 2), 'ETA in hours', round(eta_in_hours, 2))

但我希望以小时和分钟为单位的 eta 以显示小时和分钟的方式显示,现在如果您使用例如 2.2 mb/s 和 46 gb,它将给出 2.2 小时的答案,我想说 2 小时和 12 分钟。

4

1 回答 1

0

通过将小时转换为分钟来使用模数

from math import floor

eta_in_hours = 2.6
eta_in_hours_and_minutes = (floor(eta_in_hours), eta_in_hours * 60 % 60)
print(eta_in_hours_and_minutes)
>>> (2, 36)

也可以使用divmod

eta_in_hours = 2.6
eta_in_minutes = eta_in_hours * 60
eta_in_hours_and_minutes = divmod(eta_in_minutes, 60)
print(eta_in_hours_and_minutes)
于 2020-11-10T15:22:27.670 回答