カテゴリ: Python 更新日: 2025/12/31

Pythonで日付の加算・減算をする方法(timedelta の使い方)

Pythonで日付の加算・減算をする方法(timedelta の使い方)
Pythonで日付の加算・減算をする方法(timedelta の使い方)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで日付を一日進めたり、三日戻したりする方法はありますか?カレンダーを自動で計算できたら便利だと思ったんです。」

先生

「Pythonには、日付の計算を簡単にしてくれるtimedeltaという便利な道具があります。旅行の予定をずらしたり、締め切りの日付を求めたりするときにも役立ちます。」

生徒

「日付の計算って難しそうなイメージがあるのですが、初心者でも扱えますか?」

先生

「大丈夫ですよ。身近な例を交えながら、誰でも理解できるようにゆっくり説明します。」

1. timedeltaとは?

1. timedeltaとは?
1. timedeltaとは?

Pythonのdatetimeモジュールには時間を扱うための仕組みがあり、その中でもtimedeltaは「時間の差」を表します。これは「何日進める」「何時間引く」というような、日付の加算や減算を行うための単位のようなものです。日常生活でいうと、カレンダーの紙を一枚ずつめくるようなイメージで、日付を自由に動かせる力を持っています。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

まずは日付を一日進める基本操作を見てみましょう。これが理解できれば、応用は簡単です。timedeltaでは「日」「時間」「分」などを指定できますが、最初はもっとも分かりやすい「日」を使った例から始めます。


from datetime import datetime, timedelta

today = datetime.now()
next_day = today + timedelta(days=1)

print(next_day)

2025-01-16 10:30:20.123456

このように、日付を一日進めるだけならとてもシンプルです。timedelta(days=1)が「一日分」を意味し、これを現在の日付に足しています。

3. 日付を複数日進めたり戻したりする

3. 日付を複数日進めたり戻したりする
3. 日付を複数日進めたり戻したりする

仕事の締め切りやイベントの予定を計算するとき、数日単位で動かしたいことがよくあります。たとえば三日後の日付を知りたい場合は「日を三つ足す」、一週間前を知りたいなら「七日引く」という形で計算できます。


from datetime import datetime, timedelta

today = datetime.now()

three_days_later = today + timedelta(days=3)
one_week_ago = today - timedelta(days=7)

print(three_days_later)
print(one_week_ago)

2025-01-18 ...
2025-01-08 ...

日付を足すと未来、引くと過去になります。これは数字の足し算と同じで、とても直感的です。カレンダーの紙を数枚めくるだけ、と考えると理解しやすくなります。

4. 時間や分の計算もできる

4. 時間や分の計算もできる
4. 時間や分の計算もできる

timedeltaは「日にち」だけでなく、「時間」や「分」も加算できます。例えば三時間後の時刻を知りたいときはhours=3を指定します。仕事のシフト管理や、アプリで通知を設定したい場合にとても役立ちます。


from datetime import datetime, timedelta

now = datetime.now()
after_three_hours = now + timedelta(hours=3)

print(after_three_hours)

2025-01-15 13:45:00 ...

このように、時間単位の計算もとても簡単にできます。Pythonが自動で「日付が変わるタイミング」も織り込んでくれるため、深夜23時に三時間足した場合も翌日に正しく進みます。

5. 複数の単位を同時に使う

5. 複数の単位を同時に使う
5. 複数の単位を同時に使う

「二日三時間後」や「一週間と二十分前」など、複数の単位を組み合わせたい場合もあります。timedeltaでは複数の引数を同時に指定でき、より細かい時間操作が可能です。


from datetime import datetime, timedelta

now = datetime.now()
mixed = now + timedelta(days=2, hours=3, minutes=20)

print(mixed)

2025-01-17 14:05:00 ...

このような計算は、スケジュール管理アプリやゲームのイベント時間調整などにも応用できます。初心者でも扱いやすく、誤差も出にくいため安心して使えます。

6. timedeltaを使うときに気をつけたいポイント

6. timedeltaを使うときに気をつけたいポイント
6. timedeltaを使うときに気をつけたいポイント

日付や時間の計算は便利ですが、扱いに慣れるまではいくつか注意したい点があります。まず、timedeltaは「月」や「年」を扱えないという特徴があります。これは月の長さが一定ではなく、年によって日数が異なるためです。そのため月単位の計算は手動で調整する必要があります。また、日付計算は現在時刻を基準に行われるため、プログラムを実行した瞬間によって結果が変わる点も覚えておくと混乱が減ります。

さらに、計算結果を画面に表示する際には日時の形式が長く感じることがあります。その場合はstrftimeを使って好みの形に整形できます。これにより、「年-月-日」だけを表示したり、「時:分」だけを取り出したりと、実際のアプリケーションで使いやすい状態に加工できます。

こうした注意点を押さえれば、日付や時間の計算はとても便利になり、日常生活のさまざまな場面に応用できるようになります。Pythonの扱いに慣れていない初心者でも十分使いこなせる機能ですので、ぜひ自分の身近なスケジュールに当てはめて練習してみてください。

カテゴリの一覧へ
新着記事
New1
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New2
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New3
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
New4
Flask
FlaskでCSRF対策を実装する方法!安全なフォーム送信を学ぼう
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.6
Java&Spring記事人気No6
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.7
Java&Spring記事人気No7
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説