current time
にはpython
コードがあります。今度は60
分に切り捨てて、8:20
の場合は8:00
に丸めますが、8:31
の場合は9:00
に四捨五入する必要があります。 this SO answerに基づいて、私はこれを試してみましたが、それは私にエラーを与える:私が得るdatetime.timeを四捨五入してエラーが発生しました。
def roundTime(dt=None, roundTo=60):
"""Round a datetime object to any time laps in seconds
dt : datetime.datetime object, default now.
roundTo : Closest number of seconds to round to, default 1 minute.
Author: Thierry Husson 2012 - Use it as you want but don't blame me.
"""
if dt == None : dt = datetime.datetime.now()
seconds = (dt.replace(tzinfo=None) - dt.min).seconds
rounding = (seconds+roundTo/2) // roundTo * roundTo
return dt + datetime.timedelta(0,rounding-seconds,-dt.microsecond)
def round_time():
td = datetime.datetime.time(datetime.datetime.now())
print(roundTime(td, roundTo=60 * 60))
エラーがTypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
です。どのようにこのエラーと時間のラウンドを解決することができますか?これを達成するためのより簡単な方法があれば教えてください。
その他の関連質問:私は時間を四捨五入すると、丸め時間から3時間後の時間も求められます。 +
操作はここで動作しますか?