minutes = [33, 35, 37, 39, 40, 41, 43, 45]
expected = [35, 35, 40, 40, 40, 45, 45, 45]
tests = []
for m, e in zip(minutes, expected):
err = ceil(m/5)*5 - e
if err!=0:
tests.append({'m': m, 'e': e, 'err': err})
if tests:
print("Tests FAILED: \n")
for test in tests: print(f" {test}")
else:
print("ALL Tests PASSED.")
## Output
# ALL Tests PASSED.
from datetime import datetime, timedelta
def round_by_five(time):
if time.second == 0 and time.microsecond == 0 and time.minute % 5 == 0:
return time
minutes_by_five = time.minute // 5
# get the difference in times
diff = (minutes_by_five + 1) * 5 - time.minute
time = (time + timedelta(minutes=diff)).replace(second=0, microsecond=0)
return time
time = datetime.now()
round_by_five(time)
解决方案
试试这个。如果
ts
是datetime
对象范例
输出:
使用
像这样的
这正是您想要的:
相关问题 更多 >
编程相关推荐