Pythonで翌月同時刻の値を求めるのに、SQLなら便利な関数が用意されていますが、Pythonではどのようにするのでしょうか。
本日は、そんなコードを紹介していきます。
コンテンツ
やりたいこと
1年は1〜12月に分けられますが、11月の日数は30日でも、 12月の日数は31日と月毎にバラバラです。
例えば、今日が10/4 21:25なら、11/4 21:25というように来月の同日時を求めたい時があります。
datetime.timedelta を使用して、datetime.timedelta(days=30)という手もありますが、先に説明した通り月毎に日にちが違うため、datetime.timedelta の引数はdaysが限界点で、来月の同日時を求めることはできません。
モジュールのインポート
今回それを解決するにあたり、relativedelta というモジュールをインポートして使用します。
またインストールの必要はありません。
1 |
import datetime |
に加えてこちらのモジュールもインポートします。
1 |
from dateutil.relativedelta import relativedelta |
これで準備ができました。
翌月の同日時の計算を行う
例えば、現在時刻を、2021-10-03 21:29 としましょう。
1 2 3 4 5 6 7 |
import datetime from dateutil.relativedelta import relativedelta dt_now = datetime.datetime.now() one_month_later = dt_now + relativedelta(months=1) print(dt_now) # 2021-10-03 21:29 print(one_month_later) # 2021-11-03 21:29 |
7行目でone_month_laterをうまく来月の同日時でprintできています。
前月の同日時の計算を行う
前月の計算も簡単です。
-(マイナス)を利用すればよいのです。
1 2 3 4 5 6 7 |
import datetime from dateutil.relativedelta import relativedelta dt_now = datetime.datetime.now() one_month_ago = dt_now + relativedelta(months=-1) print(dt_now) # 2021-10-03 21:29 print(one_month_ago) # 2021-09-03 21:29 |
以上。
最後に
いかがでしたでしょうか。
以上が、「Pythonで翌月の同時刻のような計算を簡単に求める」の紹介記事になります。
スクールを利用して本格的に学ぶ
いかがでしたでしょうか?
10人中9人が挫折すると言われるプログラミングを、ヒロヤンも実はプログラミングスクールで学習をしてきたからで、結果、今はPythonエンジニアとして働いています。
挫折率が高いプログラミングこそお金を払ってメンターを付けて、道を見失わないように環境を構築する必要があるのではないでしょうか。
これはダイエットで自分一人では痩せられないけど、トレーナーを付けて否が応でもせざるを得ない環境を作ると一緒ですね。
ヒロヤンもプログラミング勉強開始直後はあれこれ悩みましたが、悩むよりも手っ取り早くスクールに登録した方が最短ルートで勉強できるのではないかと考え、結果挫折せずに今に至っています。
今なら無料でキャリアカウンセリングを行っているTechAcademyのようなプログラミングスクールもありますのでこれを機会に是非カウンセリングだけでも受けてみてはいかがでしょうか?
上記リンク先から無料相談ができます。
またこちら(↓)ではPython専用のプログラミングスクールをまとめ紹介しています。
コメントを残す