Python標準モジュールdatetimeで日時を計算してみよう

こんにちは、菱沼です。

「シゴトがはかどるPython自動処理の教科書(著:クジラ飛行机様/マイナビ出版)」を利用して、Pythonを使った自動化について学んでいきます。

前回は、Pythonの標準モジュールである日時計算に使うdatetimeの概要と、モジュールを使う時に必要なimport文について学びました。

今回は、モジュールの使い方に慣れるために、datetimeモジュールを使っていくつか試してみることになるようです。

目次

Python標準モジュール、datetimeで日時表示の書式を指定する

datetimeモジュールは日時計算に関することができます。

前回は現在時刻のみやってみましたが、今回は書式の指定や、あと何日というような日時の計算の部分をやってみます。今回はほとんどテキストをなぞる形です。

————————

P.23

なお、日時を画面に表示する際、日時だけを表示したかったり、秒は省略して時分だけ表示したかったりと、その状況に応じて異なるフォーマットで表示したい場合がおおもいものです。datetimeオブジェクトのstrftimeメソッドを使うと任意の書式で日時を表示できます。

————————

このプログラムの実行結果が以下です。

日付を指定して、希望する書式で表示させることもできるそうです。

指定日までの残りの日数を計算してみる

次はとある日まで、あと何日なのかを計算する方法です。

————————

P.24

2025年4月13日は大阪で国際博覧会が開催される予定となっています。今日から国際博覧会までの日数を表示してみましょう。

————————

これを実行すると、「あと270日です」と表示されました。

「今日を指定」のところが基準日となります。ここでは「今日」ということで、[now]メソッドで実行日が入るようになっていますが、ここを日付に変更すると、その日からあと何日なのかを計算することができます。

指定日までの残りの日数を計算してみる

次はあと何秒かを計算する方法です。

————————

P.25

ここでは、22時に就寝し、翌日の朝8時半に起きると仮定して睡眠時間を計算してみましょう。

プログラムを実行すると以下のように表示されます。

(中略)

ここでは、2023年の1月1日の夜22時を就寝時間に、2023年1月2日朝8時30分を起床時間に指定しました。2の部分で日時の差の計算を行います。datetimeオブジェクト同士を引き算すると、datetime.timedeltaオブジェクトが得られます。このsecondsプロパティを参照すると、あと何秒七日が得られます。また、1時間の秒数(60×60=3600秒)で割れば、あと何時間化を調べることができます。最後、4の部分で計算結果を表示します。

————————

では次にいきます。

指定した日から●日後を計算したい

次は、何日後なのかを調べたいときです。

————————

P.25、26

例えば、2025年2月27日の3日後は何月何日でしょうか。27+3で2月30日でしょうか?賢明なみなさんはお気づきでしょう。2月に30日はありません。

しかも2月は年によって日数が異なり、うるう年であれば29日、平年であれば28日です。そのため、単純な足し算では求められません。そこで、datetimeモジュールを使えば手軽に計算できます。

2025年はうるう年ではなく平年です。そのため、プログラムを実行すると、以下のように表示されます。

(中略)

このように、timedeltaオブジェクトを利用すると、N日後の日付を手軽に計算することができます。

————————

2024年の今年はうるう年。せっかくなのでやってみました。

問題なくうるう年です。

datetimeモジュールについてもっと知りたい方は以下の参考サイトもご参照ください。

datetime — 基本的な日付と時間の型|公式ドキュメント

Pythonのdatetimeで日付や時間と文字列を変換(strftime, strptime)

Pythonで翌日や翌月みたいな日付の計算をする

日付の書式コードの一覧は公式ドキュメントからご確認いただけます。曜日の表示形式とかも選べますよ。

それではきりが良いので今回はこちらで終了です。お付き合いいただき、ありがとうございました。

Pythonの自動化で業務の効率化を図りたい方は、グローバルウェイに依頼してみてはいかがでしょうか?興味がある方は以下をご覧の上、是非お問い合わせください。

https://gw-python.com/python-auto

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!
目次