私は、どれだけ長く生きているかを個人に伝える簡単なプログラムに取り組んでいます。Pythonで日付を差し引く
私は現在の日付を取得し、誕生日を取得する方法を知っています。唯一の問題は、2つの日付を減算する方法を知っていますが、残念ながら時間、分、秒は含まれていません。
私は2つの日付を差し引いて差を2番目の日に戻すことができる方法を探しています。
私は、どれだけ長く生きているかを個人に伝える簡単なプログラムに取り組んでいます。Pythonで日付を差し引く
私は現在の日付を取得し、誕生日を取得する方法を知っています。唯一の問題は、2つの日付を減算する方法を知っていますが、残念ながら時間、分、秒は含まれていません。
私は2つの日付を差し引いて差を2番目の日に戻すことができる方法を探しています。
from datetime import datetime
birthday = datetime(1988, 2, 19, 12, 0, 0)
diff = datetime.now() - birthday
print diff
# 8954 days, 7:03:45.765329
をローカル時間を使用しないでください( 'datetime.now()')です。 ['Use datetime.utcnow()']](http://stackoverflow.com/a/12126443/4279)。 – jfs
あなたの日からdatetime.datetime
を作成します。
datetime.datetime.combine(birthdate, datetime.time())
今、あなたはdatetime.datetime.now()
からそれを引くことができます。 2つのdatettime
オブジェクトをsubstractingとき
>>> from datetime import date, datetime, time
>>> bday = date(1973, 4, 1)
>>> datetime.now() - datetime.combine(bday, time())
datetime.timedelta(14392, 4021, 789383)
>>> print datetime.now() - datetime.combine(bday, time())
14392 days, 1:08:13.593813
あなたはdatettime.timedelta
オブジェクトを取得します。
from datettime import datetime
x = datetime.now()
y = datetime.now()
delta = y - x
これは、マイクロエンコーダーの解像度との時間差を示します。詳細については
そう秒で年齢はDSTの移行の間に逆方向に行くことができますofficial documentation
これは、差の合計を秒単位で計算しません(1日の秒数で最大秒数) –
使用UTC時刻を見てみましょう:
from datetime import datetime
born = datetime(1981, 12, 2) # provide UTC time
age = datetime.utcnow() - born
print(age.total_seconds())
あなたのプログラムが実行される場合は、ローカルタイムを使用することはできません人が生まれた場所とは異なる場所(タイムゾーン)にあるコンピュータで、または誕生日以来この場所で時間の規則が変更されていた場合に発生します。数時間のエラーが発生することがあります。
閏秒を考慮する場合、タスクはほとんど不可能になります。
import datetime
born = datetime.date(2002, 10, 31)
today = datetime.date.today()
age = today - born
print(age.total_seconds())
出力:463363200.0
関連:[24時間は、日付時刻との間を通過してきた場合の検索 - パイソン](https://stackoverflow.com/q/26313520/4279) – jfs