カテゴリ: Python 更新日: 2026/03/10

Pythonのtimedeltaで日付の加算・減算をしよう!初心者でもわかる時間操作の基本

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

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

生徒

「Pythonで、今日から3日後の日付を計算したいんですが、どうすればいいですか?」

先生

「それはtimedeltaという道具を使えば簡単にできますよ。」

生徒

「タイムデルタ…?聞いたことがない言葉です。難しくないですか?」

先生

「安心してください。タイムデルタは日付の足し算や引き算をするための、やさしい道具です。今から丁寧に説明していきましょう。」

1. timedeltaとは?Pythonで日付を加算・減算する方法

1. timedeltaとは?Pythonで日付を加算・減算する方法
1. timedeltaとは?Pythonで日付を加算・減算する方法

Python(パイソン)で日付や時刻を操作する際、標準で用意されているのがdatetime(デイトタイム)モジュールです。その中でも、今回注目するtimedelta(タイムデルタ)は、「時間の長さ(期間)」を表現するための専用ツールです。

例えば、「現在の日付に3日プラスする」や「特定のイベントから2時間マイナスする」といった計算をしたい時に、数字をただ足すのではなく「時間の概念」として正しく計算してくれます。日付の計算は、月をまたいだり(31日の次は1日)、うるう年があったりと複雑ですが、timedeltaを使えばPythonがすべて自動で調整してくれます。


# 1. まずは道具(モジュール)を読み込みます
from datetime import datetime, timedelta

# 2. 今日の日付を取得します
today = datetime.now()
print("計算前の今日の日付:", today.strftime('%Y年%m月%d日'))

# 3. 「3日分」という時間の長さを作ります
three_days = timedelta(days=3)

# 4. 今日の日付に3日分を足してみます
future = today + three_days
print("3日後の日付:", future.strftime('%Y年%m月%d日'))

プログラミング未経験の方でも、「日付 + 期間 = 未来の日付」というシンプルな足し算として考えればOKです。このようにtimedeltaは、カレンダーの計算を楽にしてくれる「魔法の物差し」のような役割を果たします。

2. timedeltaの基本的な使い方

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

Pythonで「○日後」や「○日前」の日付を計算したいときに欠かせないのがtimedelta(タイムデルタ)です。これは、特定の「日付」ではなく、「10日間」や「5時間」といった「時間の長さ(期間)」を表すための道具だと考えると分かりやすくなります。

まずは、一番よく使う「今日から7日後の日付」を求める簡単なプログラムを見てみましょう。プログラミングが初めての方でも、以下のコードをコピーして実行するだけで結果を確認できます。


from datetime import datetime, timedelta

# 1. 今日の日付と時刻を取得する
today = datetime.today()

# 2. 「7日間」という期間(データ)を作る
seven_days = timedelta(days=7)

# 3. 今日の日付に7日間を足し合わせる
after_7_days = today + seven_days

print("今日の日付:", today.strftime('%Y年%m月%d日'))
print("7日後の日付:", after_7_days.strftime('%Y年%m月%d日'))

今日の日付: 2026-01-30
7日後の日付: 2026-02-06

解説とポイント:

  • 直感的な計算: today + timedelta(days=7) のように、算数の足し算と同じ感覚で日付を操作できるのがPythonの便利なところです。
  • 引数の指定: days=7 の数字を 30 に変えれば1ヶ月後(30日後)になりますし、days=-7 とマイナスにすれば「7日前」を計算することも可能です。
  • 自動繰り上げ: 月をまたぐ計算(例:1月30日の2日後)も、Pythonがカレンダーに基づいて自動的に「2月1日」と計算してくれるので、複雑な条件分岐を書く必要はありません。

このように、timedeltaは「時間のパーツ」を作って、それを既存の日付にガッチャンコとくっつけるイメージで使ってみてください。

3. 日付の引き算(過去の日付を求める)

3. 日付の引き算(過去の日付を求める)
3. 日付の引き算(過去の日付を求める)

timedeltaは足し算だけでなく、引き算もできます。たとえば「今日から3日前」を求めたいときは、- timedelta(days=3)と書きます。


three_days_ago = today - timedelta(days=3)
print("3日前:", three_days_ago)

3日前: 2025-08-31 12:34:56.789012

このように、「過去の日付」も簡単に計算できます。

4. timedeltaで使える単位

4. timedeltaで使える単位
4. timedeltaで使える単位

timedeltaでは、日(days)だけでなく、時間(hours)や分(minutes)なども指定できます。以下のような単位が使えます:

  • days:日
  • seconds:秒
  • microseconds:マイクロ秒
  • milliseconds:ミリ秒
  • minutes:分
  • hours:時間
  • weeks:週

これらを自由に組み合わせることもできます。

5. 複数単位を同時に使ってみよう

5. 複数単位を同時に使ってみよう
5. 複数単位を同時に使ってみよう

たとえば、「3日と12時間と30分後」のように、複数の時間を組み合わせて加算することもできます。


delta = timedelta(days=3, hours=12, minutes=30)
future = today + delta
print("3日12時間30分後:", future)

3日12時間30分後: 2025-09-06 01:04:56.789012

このようにtimedeltaはとても柔軟です。

6. 2つの日付の差を求める

6. 2つの日付の差を求める
6. 2つの日付の差を求める

実はtimedeltaは、自分で作るだけでなく、日付同士を引き算することで自動的に作られます。これにより、「何日前なのか」「何日後なのか」などを簡単に知ることができます。


future_date = datetime(2025, 9, 10)
diff = future_date - today
print("差は:", diff)
print("日数だけ知りたいときは:", diff.days)

差は: 7 days, 0:00:00
日数だけ知りたいときは: 7

このように、2つの日付の間に何日あるかを簡単に計算できます。

7. パソコン初心者の方への補足:timedeltaとは何か?

7. パソコン初心者の方への補足:timedeltaとは何か?
7. パソコン初心者の方への補足:timedeltaとは何か?

timedelta(タイムデルタ)は、パソコンにとって「時間の長さ」を表す特別なデータの形です。たとえば「5日」や「3時間」など、単なる数ではなく、時間として意味を持った情報です。

それをdatetime(日付情報)と組み合わせることで、「今から5日後」「2時間前」などを自由に計算できるようになります。

また、日付の違いを計算した結果としてもtimedeltaが返ってくるので、未来や過去の距離を測るものさしのような役割も持っています。

8. timedeltaを使った現実的な例

8. timedeltaを使った現実的な例
8. timedeltaを使った現実的な例

以下のような場面でtimedeltaはとても便利です。

  • 予約システムで「1週間後の予定日」を自動計算
  • 会員登録から30日後にリマインドメールを送る
  • 誕生日まであと何日かをカウントダウン
  • 提出期限の24時間前に通知

どれも、日付の加算・減算が必要な処理ですね。

9. timedeltaでエラーを防ぐコツ

9. timedeltaでエラーを防ぐコツ
9. timedeltaでエラーを防ぐコツ

timedeltaの中に使うキーワード(daysなど)を間違えると、エラーになります。特にdayhourと書いてしまうとエラーになるので、必ず複数形dayshoursと書くようにしましょう。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonで曜日を取得する方法を解説!weekday()とisoweekday()の違いと使い方
New2
Python
Pythonのtimedeltaで日付の加算・減算をしよう!初心者でもわかる時間操作の基本
New3
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New4
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
Java&Spring記事人気No4
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.5
Java&Spring記事人気No5
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.6
Java&Spring記事人気No6
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法
No.7
Java&Spring記事人気No7
PHP
PHP の MySQL 接続の基本(mysqli, PDO)を完全解説!初心者向けガイド
No.8
Java&Spring記事人気No8
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化