Итак, моя цель - изменить этот вывод с datetime:
time left: -1 day, 23:57:28
На это:
time left: 0:00:30
Теперь это должно быть Dynami c, как код предполагается изменить в словаре. Я пытаюсь понять, почему он выводится с помощью
-1 day, 23:57:28
. Я пробовал переместиться туда, где он выполняется, и даже изменить какой-то другой код. Я просто не понимаю, почему он показывает -1 день. Похоже, что она выполняется слишком много раз
Также, примечание, цель этой программы - выяснить, сколько песен может поместиться в список воспроизведения с учетом ограничений по времени. Кажется, я не могу понять, какое утверждение if должно работать. Может ли кто-нибудь помочь с этим?
Это текущий вывод программы:
0:02:34
0:06:30
Reached limit of 0:07:00
time left: -1 day, 23:57:28
См. Код ниже:
import datetime
#durations and names of songs are inputted here
timeDict = {
'Song1' : '2:34',
'Song2' : '3:56',
'Song3' : '3:02'
}
def timeAdder():
#assigns sum to the datetime library's timedelta class
sum = datetime.timedelta()
#sets the limit, can be whatever
limit = '0:07:00'
#calculates the sum
for i in timeDict.values():
(m, s) = i.split(':')
d = datetime.timedelta(minutes=int(m), seconds=int(s))
sum += d
#checks whether the limit has been reached
while str(sum)<limit:
print(sum)
break
#commits the big STOP when limit is reached
if str(sum)>limit:
print("Reached limit of " + limit)
break
#timeLeft variable created as well as datetime object conversion to a string
x = '%H:%M:%S'
timeLeft = datetime.datetime.strptime(limit, x) - datetime.datetime.strptime(str(sum), x)
for i in timeDict:
if timeDict[i] <= str(timeLeft):
print("You can fit " + i + " into your playlist.")
print("time left: " + str(timeLeft))
def main():
timeAdder()
main()
Любая помощь с этим будет оценен.