AttributeError: 'datetime.timedelta' object has no attribute 'strftime'
AttributeError: 'datetime.timedelta' object has no attribute 'strftime'
我正在自学如何在 Python 中编码。
我正在尝试编写一个“计算器”,计算我需要工作多少 hours/days 才能购买产品。我收到此错误,但不知道如何解决:
File "D:\---\---\---\code.py", line 21, in <module>
print("Para comprar um produto de " + str(preco) + " tem de trabalhar durante " + str(resultado.strftime("%d dias, %H horas e %M minutos.")))
AttributeError: 'datetime.timedelta' object has no attribute 'strftime'
完整代码如下:
import datetime
while True:
questao = input("Quer calcular em horas ou em dias?\nH ou D: ")
if questao == "H":
salario = float(input("\nQuanto ganha por hora? "))
preco = float(input("Quanto custa o produto? "))
divisão = preco/salario
resultado = datetime.timedelta(hours=divisão)
break
elif questao == "D":
salario = float(input("\nQuanto ganha por dia? "))
preco = float(input("Quanto custa o produto? "))
divisão = preco/salario
resultado = datetime.timedelta(days=divisão)
break
else:
print("Inseriu algo que não existe, tente novamente!\n")
continue
print("Para comprar um produto de " + str(preco) + " tem de trabalhar durante " + str(resultado.strftime("%d dias, %H horas e %M minutos.")))
有人可以帮我解决这个问题吗?谢谢:)
您可以从 timedelta 和秒中获取 .days 值。与其他日期时间对象不同,使用 .hour 不起作用。然后对秒进行数学运算以获得小时和分钟。如果这样更容易,您也可以将其转换为字符串。
preco = 1000
salario = 6
divisão = preco / salario
resultado = datetime.timedelta(hours=divisão) # 6 days, 22:40:00
print(str(resultado))
# 6 days, 22:40:00
days = resultado.days
seconds = resultado.seconds
hours = seconds//3600
minutes = (seconds//60) % 60
print(str(days), 'dias', str(hours), 'horas e', str(minutes), 'minutos.')
# 6 dias 22 horas e 40 minutos.
我正在自学如何在 Python 中编码。
我正在尝试编写一个“计算器”,计算我需要工作多少 hours/days 才能购买产品。我收到此错误,但不知道如何解决:
File "D:\---\---\---\code.py", line 21, in <module>
print("Para comprar um produto de " + str(preco) + " tem de trabalhar durante " + str(resultado.strftime("%d dias, %H horas e %M minutos.")))
AttributeError: 'datetime.timedelta' object has no attribute 'strftime'
完整代码如下:
import datetime
while True:
questao = input("Quer calcular em horas ou em dias?\nH ou D: ")
if questao == "H":
salario = float(input("\nQuanto ganha por hora? "))
preco = float(input("Quanto custa o produto? "))
divisão = preco/salario
resultado = datetime.timedelta(hours=divisão)
break
elif questao == "D":
salario = float(input("\nQuanto ganha por dia? "))
preco = float(input("Quanto custa o produto? "))
divisão = preco/salario
resultado = datetime.timedelta(days=divisão)
break
else:
print("Inseriu algo que não existe, tente novamente!\n")
continue
print("Para comprar um produto de " + str(preco) + " tem de trabalhar durante " + str(resultado.strftime("%d dias, %H horas e %M minutos.")))
有人可以帮我解决这个问题吗?谢谢:)
您可以从 timedelta 和秒中获取 .days 值。与其他日期时间对象不同,使用 .hour 不起作用。然后对秒进行数学运算以获得小时和分钟。如果这样更容易,您也可以将其转换为字符串。
preco = 1000
salario = 6
divisão = preco / salario
resultado = datetime.timedelta(hours=divisão) # 6 days, 22:40:00
print(str(resultado))
# 6 days, 22:40:00
days = resultado.days
seconds = resultado.seconds
hours = seconds//3600
minutes = (seconds//60) % 60
print(str(days), 'dias', str(hours), 'horas e', str(minutes), 'minutos.')
# 6 dias 22 horas e 40 minutos.