【发布时间】:2011-05-19 10:40:59
【问题描述】:
这是我的代码:
last_time = get_last_time()
now = time.time() - last_time
minute =
seconds =
print 'Next time you add blood is '+minute+':'+seconds
因为每5分钟恢复一次血液所以只需要一分一秒
谢谢
【问题讨论】:
这是我的代码:
last_time = get_last_time()
now = time.time() - last_time
minute =
seconds =
print 'Next time you add blood is '+minute+':'+seconds
因为每5分钟恢复一次血液所以只需要一分一秒
谢谢
【问题讨论】:
这是基本的时间算术...如果您知道一分钟有 60 秒,那么您可以 自己发现了:
minute = int(now / 60)
seconds = int(now % 60)
【讨论】:
我相信两个时间对象之间的差异会返回一个timedelta 对象。这个对象有一个.total_seconds() 方法。您需要自己将这些因素分解为分钟+秒:
minutes = total_secs % 60
seconds = total_secs - (minutes * 60)
当您不知道如何处理 Python 中的值时,您可以随时在交互式 Python 会话中进行尝试。使用dir(obj) 查看任何对象的所有属性和方法,使用help(obj) 查看其文档。
更新:我刚刚检查了一下,time.time() 没有返回 time 对象,而是一个表示自 Epoch 以来秒数的浮点数。我所说的仍然适用,但是您以不同的方式获得 total_secs 的值:
total_secs = round(time.time() - last_time)
简而言之:
last_time = get_last_time()
time_diff = round(time.time() - last_time)
minute = time_diff / 60
seconds = time_diff % 60 # Same as time_diff - (minutes * 60)
print 'Next time you add blood is '+minute+':'+seconds
【讨论】:
在 Python 3 中,
>>import time
>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=16, tm_hour=1, tm_min=51, tm_sec=39, tm_wday=0, tm_yday=197, tm_isdst=0)
你可以像这样刮分秒,
>>time.localtime().tm_min
51
>>time.localtime().tm_sec
39
我想,这可以解决你的问题。
【讨论】: