2016-07-21 10 views
1

timedeltaを返そうとしていますが、time_valueが大きすぎるとオーバーフローしてエラーが発生します。私はtime_valueが大きすぎるかどうかをチェックすることができますが、エラーを処理してデフォルトを返すラッパーが好きです。私は今何をしているのかに関するコードを含んでいます。私のためにこれを行うtimedeltaやdatetimeのバージョンはありますか?python Timedelta overflow

def time_format(time_value): 
      try: 
       if time_value is None: 
        return 0 
       elif time_value > 0: 
        return (timedelta(seconds=-time_value)) 
      except OverflowError: 
       return 0 

答えて

0

datetime.timedelta.mindatetime.timedelta.maxを使用できます。これら二つは0

について対称ではないそして、あなたのコードが

time_offset = 0 
if timedelta.min.total_seconds() <= -time_value <= timedelta.max.total_seconds(): 
    time_offset = timedelta(seconds=-time_value) 
になることに注意してください