Pythonで2つの日付の間の日数を求める方法
2つの日付の間の日数を求めるには、Pythonの標準ライブラリである datetime モジュールを使用します。datetime モジュールには日付を扱うための date クラスが用意されており、dateオブジェクト同士を減算すると、その差が timedelta オブジェクトとして返されます。このオブジェクトの days 属性を参照することで、日数を簡単に取得できます。
手順1:必要なライブラリをインポートする
まず、datetime モジュールから date クラスをインポートします。
from datetime import date
手順2:dateオブジェクトを作成する
次に、日数を計算したい2つの日付を指定して、dateオブジェクトを作成します。引数は「年、月、日」の順で渡します。
date1 = date(2021, 7, 20) date2 = date(2021, 8, 30)
手順3:2つの日付の差から日数を取得する
dateオブジェクト同士を減算し、結果の timedelta オブジェクトから days 属性を取り出すことで、2つの日付の間の日数が求まります。
(date2 - date1).days
サンプルコード
以下に、ここまでの手順をまとめた完全なコード例を示します。
from datetime import date
# 比較する2つの日付
date1 = date(2021, 7, 20)
date2 = date(2021, 8, 30)
print("Date 1 =", date1)
print("Date 2 =", date2)
# 日数の差分を計算
resDays = (date2 - date1).days
print("2つの日付の間の日数 =", resDays)実行結果
このプログラムを実行すると、以下のような出力が得られます。
Date 1 = 2021-07-20 Date 2 = 2021-08-30 2つの日付の間の日数 = 41
補足:timedeltaについて
dateオブジェクトの減算結果である timedelta オブジェクトは、日数(days)だけでなく、秒(seconds)やマイクロ秒(microseconds)などの時間差も保持できます。また、datetime オブジェクト同士の減算にも同じ手法が使えるため、時刻を含む日時の差分計算にも応用可能です。日付の加算・減算を行いたい場合も、timedelta(days=7) のように生成したオブジェクトを足し引きするだけで実現できます。
-
Pythonで整数の2進表現に含まれる1のビット数を数える方法
ある整数 n が与えられたとき、その数を2進数で表した際に含まれる「1」のビット(セットビット)の個数を求めることを考えます。この問題は「ポピュレーションカウント」や「ハミング重み」と呼ばれることもあり、ビット演算の基礎を学ぶのに最適な題材です。問題の例例えば、入力が 12 の場合を考えてみましょう。12 を2進数で表すと 1100 となり、「1」のビットは2個含まれています。したがって、出力は 2 になります。解法のアプローチこの問題は、次の手順で解くことができます。カウンター変数 count を 0 で初期化するn が 0 になるまで以下を繰り返すn の最下位ビット(n AND 1)を c
-
Pythonで2つの日付の間の日数を計算する方法を解説
Pythonでは、シンプルな日付演算を使うことで、2つの日付の間の日数を簡単に計算できます。日数の差を求めたい2つの日付を定義し、それらを引き算すると timedelta オブジェクトが得られます。このオブジェクトの days プロパティを参照することで、目的の日数を取得できます。基本的な手順datetime モジュールから date クラスをインポートします。差を求めたい2つの日付を date オブジェクトとして定義します。2つの日付を引き算して timedelta オブジェクトを生成します。days プロパティの値を出力します。サンプルコードfrom datetime import dat