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

Pythonで日付を比較する方法をわかりやすく解説

Pythonの日付型は、すべての比較演算子に対応しています。そのため、datetimeモジュールで日付オブジェクトを作成・操作している場合は、「<」「>」「<=」「>=」「==」といった演算子を、数値と同じ感覚で日付同士にそのまま適用できます。これにより、入力値の検証(バリデーション)や期間チェックなど、日付を比較する処理を非常にシンプルに実装できます。

コード例

from datetime import datetime
from datetime import timedelta
today = datetime.today()
yesterday = today - timedelta(days=1)
print(today < yesterday)
print(today > yesterday)
print(today == yesterday)

出力結果

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

False
True
False

コードの解説

この例では、まずdatetime.today()で現在の日時を取得し、timedelta(days=1)を使って1日前の日時(昨日)を計算しています。続いて3つの比較を行った結果は次のとおりです。

  • today < yesterday → False(今日は昨日より前ではない)
  • today > yesterday → True(今日は昨日より後である)
  • today == yesterday → False(両者は同じ日時ではない)

注意点:日付だけを比較したい場合

datetimeオブジェクトは時刻情報まで持っているため、秒単位の違いがあると「==」での一致判定はほぼFalseになります。年月日だけを比較したい場合は、.date()メソッドで日付部分のみを取り出してから比較すると安全です。

if today.date() > yesterday.date():
    print("今日は昨日より新しい日付です")

  1. PerlとPythonの正規表現を比較する方法|共通点と違いを徹底解説

    PerlとPythonは、どちらも強力な正規表現エンジンを備えたプログラミング言語です。両者の正規表現を比較してみると、実は多くの機能がほぼ共通していることがわかります。この記事では、PerlとPythonの正規表現の共通点と相違点を、初心者にもわかりやすく解説します。 基本機能はほぼ同じ 最も基本的な正規表現の機能は、ほぼすべての実装で共通しています。具体的には以下の要素です。 ワイルドカード:任意の一文字にマッチする「.」 量指定子:「*」「+」「?」 アンカー:行頭・行末を表す「^」と「$」 文字クラス:「[]」内で文字の集合を定義 後方参照:「\1」「\2」「\3」など 選択肢

  2. Pythonでtimetuple(時刻タプル)を完全に表示する方法

    datetime.date インスタンスの timetuple() メソッドは、time.struct_time 型のオブジェクトを返します。struct_time は「名前付きタプル(named tuple)」と呼ばれるオブジェクトで、各属性にインデックス番号でも属性名でもアクセスできるのが特徴です。 サンプルコード 時刻タプル全体を表示するのはとても簡単で、取得した struct_time オブジェクトをそのまま print 関数に渡すだけです。 import datetime todaysDate = datetime.date.today() timeTuple = todaysDat