現在時刻に任意の時間を加える

シミュレーションが終了する時間を見積もるのに、「1ステップにかかる秒数×ステップ数」から計算時間を出して、それを現在時刻に足して何日の何時くらいになりそうか計算している。これを bc を使って計算してたけど毎回だと面倒になってきたので、何か良い方法はないかと Python のドキュメントを漁る。

datetime モジュールを使えば良いみたい。

Python Library Reference 5.1 datetime -- Basic date and time types

現在時刻を取得。

>>> from datetime import datetime
>>> d = datetime.today()
>>> print d
2007-08-25 18:05:40.589792

続いて、時間差を表現するモジュール timedelta をインポート。

>>> from datetime import timedelta
>>> dt = timedelta(seconds=5000)
>>> print dt
1:23:20
>>> new_d = d + dt
>>> print new_d
2007-08-25 19:29:00.589792

ちゃんと現在時刻+5000秒の時間になった。