3

月/日/年のような文字列で始まり'3/6/2011'、現在の日が2011年3月13日(7日後)であるとすると、それから経過した年数(7 / 365 = 0.0191780821917808)Pythonで?

任意の入力日付を処理できるようにしたいことに注意してください。ただし、フォーマットはありませんが、上記のフォーマットを想定できます。

4

3 に答える 3

9

timedelta2を引くことでを得ることができますdatetime。これにより、時差を操作するための多くのクールな方法が得られます。

>>> import datetime
>>> before = datetime.datetime.strptime('3/6/2011','%m/%d/%Y')
>>> now = datetime.datetime.now()
>>> type(now-before)
<type 'datetime.timedelta'>
>>> (now-before).days
7
>>> float((now-before).days)/365
0.019178082191780823

編集:うわー、この単純な質問には非常に深いところがあると誰が思ったでしょう。この質問に最も多くの票を投じた回答を見てください。うるう年に対処することは「難しい」問題です。(@kriegarへのクレジット)

于 2011-03-14T03:14:00.480 に答える
1
>>> import datetime
>>> datestring = "3/6/2011"
>>> (datetime.date.today() - datetime.datetime.strptime(datestring, "%m/%d/%Y").date()).days / 365.0
0.019178082191780823
于 2011-03-14T03:15:31.540 に答える
1

上記のすべての回答はうるう年を考慮していません。そして、この質問にはあなたの質問に関連する議論があるようです。

年の2つの日付の間のPythonicの違い?

于 2011-03-14T03:24:40.397 に答える