首页 > 解决方案 > 在 Python 中将秒转换为天、小时、分钟和秒

问题描述

我有一个函数可以将秒返回天、小时、分钟和秒。但是我需要但是,如果输出为 0,则不打印。例如,如果我输入 176400 秒,我希望输出为“2 天 1 小时”而不是“2 天、2 小时、0 分钟、0 秒”。

到目前为止我做了:

sec = int(input("Enter time in Seconds: "))
temp = sec
day = sec // 86400
sec %= 86400
hour = sec // 3600
sec %= 3600
mins = sec // 60
sec %= 60

if day >= 1:
    print(f'time in minutes is {day}days {hour}hour {mins}min {sec}sec')

elif hour >= 1:
    if mins == 0 and sec == 0:
        print(f'time in minutes is {hour}hour')
    elif mins == 0:
        print(f'time in minutes is {hour}hour {sec}sec')
    elif sec == 0:
        print(f'time in minutes is {hour}hour {mins}min')
    else:
        print(f'time in minutes is {hour}hour {mins}min {sec}sec')

elif mins >= 1:
    if sec == 0:
        print(f'time in minutes is {mins}min')
    else:
        print(f'time in minutes is {mins}min {sec}sec')

elif sec >= 1:
    print(f'time sec == {sec} sec')

我可以使用一堆“if”语句继续这段代码,但有更短的方法吗?

标签: pythondatetimeconverters

解决方案


看起来您正在尝试执行以下操作:

result = "time in minutes is"
if days >0:
    result += f" {days} days"
if hours > 0:
    result += f" {hours} hours"
if mins > 0:
    result += f" {mins} minutes"
if secs > 0:
    result += f" {secs} seconds"

推荐阅读