2 つの日付 (例:'8/18/2008'
と'9/26/2008'
) がある場合、これら 2 つの日付の間の日数を取得する最良の方法は何ですか?
793205 次
14 に答える
1031
2 つの日付オブジェクトがある場合は、timedelta
オブジェクトを計算するだけでそれらを減算できます。
from datetime import date
d0 = date(2008, 8, 18)
d1 = date(2008, 9, 26)
delta = d1 - d0
print(delta.days)
ドキュメントの関連セクション: https://docs.python.org/library/datetime.html。
別の例については、この回答を参照してください。
于 2008-09-29T23:41:22.830 に答える
203
datetime の力を使用する:
from datetime import datetime
date_format = "%m/%d/%Y"
a = datetime.strptime('8/18/2008', date_format)
b = datetime.strptime('9/26/2008', date_format)
delta = b - a
print delta.days # that's it
于 2008-09-29T23:41:59.710 に答える
48
クリスマスまでの日数:
>>> import datetime
>>> today = datetime.date.today()
>>> someday = datetime.date(2008, 12, 25)
>>> diff = someday - today
>>> diff.days
86
ここでより多くの算術。
于 2008-09-29T23:43:01.937 に答える
20
datetime モジュールが必要です。
>>> from datetime import datetime, timedelta
>>> datetime(2008,08,18) - datetime(2008,09,26)
datetime.timedelta(4)
もう一つの例:
>>> import datetime
>>> today = datetime.date.today()
>>> print(today)
2008-09-01
>>> last_year = datetime.date(2007, 9, 1)
>>> print(today - last_year)
366 days, 0:00:00
ここで指摘したように
于 2008-09-29T23:43:10.300 に答える
16
from datetime import datetime
start_date = datetime.strptime('8/18/2008', "%m/%d/%Y")
end_date = datetime.strptime('9/26/2008', "%m/%d/%Y")
print abs((end_date-start_date).days)
于 2012-04-26T10:58:02.887 に答える
12
また、次の方法でも簡単に実行できますarrow
。
import arrow
a = arrow.get('2017-05-09')
b = arrow.get('2017-05-11')
delta = (b-a)
print delta.days
于 2017-05-11T18:35:15.533 に答える
6
datetime.toordinal()
まだ言及されていない方法もあります。
import datetime
print(datetime.date(2008,9,26).toordinal() - datetime.date(2008,8,18).toordinal()) # 39
https://docs.python.org/3/library/datetime.html#datetime.date.toordinal
date.
トゥールディナル()1 年の 1 月 1 日の序数が 1 である、日付のグレゴリオ暦の序数を 返し
date
ます。date.fromordinal(d.toordinal()) == d
ほど読みやすくはありませんが、日数差の計算には適しているようtimedelta.days
です。
于 2019-06-09T14:03:16.917 に答える