Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つの日時の間に24時間以上経過したかどうかを確認する方法

Pythonで2つの日時の間に24時間が経過したかどうかを確認するには、日付の計算を行う必要があります。2つのdatetimeオブジェクトがある場合、それらを引き算すると、結果としてtimedeltaオブジェクトが得られます。このtimedeltaオブジェクトを使って比較を行います。

なお、timedeltaオブジェクトは整数(int)と直接比較することができません。そのため、total_seconds()メソッドを使って、まず経過時間を秒数として取り出す必要があります。

サンプルコード

from datetime import datetime

NUMBER_OF_SECONDS = 86400  # 24時間の秒数

first = datetime(2017, 10, 10)
second = datetime(2017, 10, 12)

if (first - second).total_seconds() > NUMBER_OF_SECONDS:
    print("1日以上経過しています!")

実行結果

上記のコードを実行すると、以下のような出力が得られます。

1日以上経過しています!

解説

  • 86400秒は24時間に相当します(24 × 60 × 60 = 86400)。
  • 2つのdatetimeオブジェクトの差を取ると、timedeltaオブジェクトが返されます。
  • total_seconds()メソッドでtimedeltaを総秒数(float型)に変換することで、数値との比較が可能になります。

この方法を使えば、任意の期間(1時間、1週間など)が経過したかどうかも、比較する秒数を変更するだけで簡単に判定できます。

  1. Pythonでヒストグラムに対数ビンを設定する方法

    Matplotlibのplt.hist()メソッドでは、bins引数に値を指定することで、ヒストグラムを描画する際に対数ビン(ログスケールの区切り)を設定できます。この記事では、np.logspace()を使って対数スケール上に等間隔に配置されたビンを生成し、それをヒストグラムに適用する手順を解説します。 手順 範囲が100の配列xを作成します。 plt.hist()メソッドでヒストグラムを描画します。bins引数には、対数スケール上で等間隔に配置された数値を返すnp.logspace()を渡し、対数ビンを指定します。 plt.gca()で現在の軸を取得し(存在しない場合は自動的に作成されま

  2. Pythonのscikit-learnを使って画像の輪郭を検出する方法

    scikit-learn(通称:sklearn)は、機械学習アルゴリズムを実装するために使用されるPythonのライブラリです。オープンソースとして公開されているため、無料で利用できます。このライブラリは、NumPy・SciPy・Matplotlibという3つのライブラリを基盤として構築されています。画像から輪郭を抽出する際には、「マーチングスクエア法(marching squares)」と呼ばれる手法が用いられます。具体的には、skimageライブラリのmeasureモジュールに含まれる「find_contours」関数を使用します。この関数では、配列内の値が線形補間されるため、出力画像にお