我正在编写一个python代码,我想对datetime.datetime实例进行一些修改。我能够使代码工作,但我不明白为什么,我只是给出了错误要求的内容。
def ts_round(ts,lev,p):
sum = False
hour = 0
minute = 0
second = 0
if 'hour' is lev:
a = ts.hour // p
if (ts.hour%p)>=(p*0.5):
a += 1
hour = a * p
minute = ts.minute
second = ts.second
if hour == 24: #si llega a 24 hay que sumar un dia
new_ts = dt.datetime(ts.year,ts.month,ts.day,hour-1,ts.minute,ts.second)
new_ts = new_ts + dt.timedelta(hours=1)
sum = True
elif 'minute' is lev:
a = ts.minute // p
if (ts.minute%p)>=(p*0.5):
a += 1
minute = a * p
second = ts.second
hour = ts.hour
if minute == 60: #si llega a 60 hay que sumar una hora
new_ts = dt.datetime(ts.year,ts.month,ts.day,ts.hour,minute-1,ts.second)
new_ts = new_ts + dt.timedelta(minutes=1)
sum = True
elif 'second' is lev: #si llega a 60 hay que suma un minuto
a = ts.second // p
if (ts.second%p)>=(p*0.5):
a += 1
second = a * p
hour = ts.hour
minute = ts.minute
if second == 60:
new_ts = dt.datetime(ts.year,ts.month,ts.day,ts.hour,ts.minute,second-1)
new_ts = new_ts + dt.timedelta(seconds=1)
sum = True
if sum:
return new_ts
else:
return dt.datetime(ts.year,ts.month,ts.day,hour,minute,second)
如果我不评论,这是完美的 'hour = 0,minute = 0,second = 0'开头(就像在这篇文章中一样)。你能解释一下为什么吗?
谢谢!