Pythonでarrowモジュールを使用し日付のリスト内の日付間の時間差を計算してみます。
今回はarrowを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)
■arrowモジュールを使用し日付のリスト内の日付間の時間差を計算する
では、早速arrowモジュールを使用し日付のリスト内の日付間の時間差を計算するスクリプトを書いていきます。
■コード
import arrow # 日付のリストを作成 dates = [ '2023-06-01', '2023-06-15', '2023-07-01', '2023-07-15', '2023-08-01', ] # 各連続する日付の間の時間差を計算 for i in range(len(dates) - 1): dt1 = arrow.get(dates[i], 'YYYY-MM-DD') dt2 = arrow.get(dates[i + 1], 'YYYY-MM-DD') time_diff = dt2 - dt1 print(f"{dt1.format('YYYY年MM月DD日')}と{dt2.format('YYYY年MM月DD日')}の間の時間差: {time_diff}")
まずは「import arrow」でarrowモジュールをインポートして、日付や時間の操作を行うための機能を利用できるようにします。次にdatesというリストの作成。datesという変数名で、日付のリストを作成します。このリストには文字列形式の日付が格納されています。
格納後、for文によるループの開始。「for i in range(len(dates) – 1):」と記述し、datesリスト内の各要素を処理するためのfor文によるループを開始します。「range(len(dates) – 1)」では、リスト内の要素のインデックスを1つずつ増やしながらループを回すための範囲を指定します。
次に日付の取得。「dt1 = arrow.get(dates[i], ‘YYYY-MM-DD’)」と「dt2 = arrow.get(dates[i + 1], ‘YYYY-MM-DD’)」と記述し、arrow.get()関数を使用して文字列形式の日付をArrowオブジェクトに変換します。dates[i]はリスト内の現在の要素を指しdates[i + 1]は次の要素を指します。
その後、時間差の計算を行います。「time_diff = dt2 – dt1」と記述し2つのArrowオブジェクトを引き算することで、それらの日付間の時間差を計算しています。結果はtime_diff変数に格納されます。
格納後、結果を出力します。print()関数を使用して、計算結果を出力します。f-stringを使用して、`{}`内に変数や式を埋め込むことができます。「dt1.format(‘YYYY年MM月DD日’)」と「dt2.format(‘YYYY年MM月DD日’)」は、それぞれdt1とdt2の日付を指定された形式で表示されます。
そして、ループの繰り返し。ループは次の日付のペアに進みます。これにより、リスト内のすべての連続する日付の間の時間差が計算され、出力されます。このプロセスにより、datesリスト内の日付間の時間差が計算され、それぞれの差が指定された形式で出力されます。
■実行・検証
このスクリプトを「t_a.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、日付のリスト内の日付間の時間差を計算し、計算結果を出力させることができました。
コメント