I want to take seconds as inputs and convert them into days, hours, minutes and seconds. The condition is that if any of those is 0, it should not be displayed.
Example:
Input: 86400
Output: 1 Days
Input: 90
Output: 1 Minutes 30 Seconds
Input: 5400
Output: 1 Hours 30 Minutes
Observe that if the value of hours, minutes, etc is zero, they are not diaplayed.
I have solved it like this but I am wondering if there is a more efficient way.
seconds = int(input())
if seconds <= 60:
print(f'{seconds} Seconds')
elif seconds > 60 and seconds < 3600:
minutes = seconds // 60
seconds = seconds % 60
print(f'{minutes} Minutes {seconds} Seconds')
elif seconds == 3600:
print("1 Hours")
elif seconds > 3600 and seconds < 86400:
minutes = seconds // 60
seconds = seconds % 60
hours = minutes // 60
minutes = minutes % 60
if minutes > 0 and seconds > 0:
print(f'{hours} Hours {minutes} Minutes {seconds} Seconds')
elif minutes > 0:
print(f'{hours} Hours {minutes} Minutes')
elif seconds > 0:
print(f'{hours} Hours {seconds} Seconds')
elif seconds == 86400:
print("1 Days")
elif seconds > 86400:
minutes = seconds // 60
seconds = seconds % 60
hours = minutes // 60
minutes = minutes % 60
days = hours // 24
hours = hours - (days * 24)
if seconds > 0 and minutes > 0 and hours > 0:
print(f'{days} Days {hours} Hours {minutes} Minutes {seconds} Seconds')
elif minutes > 0 and hours > 0:
print(f'{days} Days {hours} Hours {minutes} Minutes')
elif minutes > 0 and seconds > 0:
print(f'{days} Days {hours} Minutes {seconds} Seconds')
elif hours > 0 and seconds > 0:
print(f'{days} Days {hours} Hours {seconds} Seconds')
elif hours > 0:
print(f'{days} Days {hours} Hours')
elif minutes > 0:
print(f'{days} Days {minutes} Minutes')
elif seconds > 0:
print(f'{days} Days {seconds} Seconds')