カテゴリ: Python 更新日: 2025/11/03

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

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

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

生徒

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

先生

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

生徒

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

先生

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

-

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

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

Python(パイソン)で日付を扱うときは、datetime(デイトタイム)モジュールを使います。その中でもtimedelta(タイムデルタ)は、「日付をずらす」ために使うとても便利な道具です。

たとえば、「今日から3日後はいつ?」とか「5日前はいつ?」といった計算が簡単にできるようになります。

2. timedeltaの基本的な使い方

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

まずは、timedeltaを使って今日の日付に日数を加えてみましょう。以下のサンプルでは、今日から7日後の日付を求めています。


from datetime import datetime, timedelta

today = datetime.today()
after_7_days = today + timedelta(days=7)

print("今日:", today)
print("7日後:", after_7_days)

今日: 2025-09-03 12:34:56.789012
7日後: 2025-09-10 12:34:56.789012

ポイント:timedelta(days=7)と書くことで「7日」という時間のかたまりを作り、それを+で現在の日付に加えています。

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と書くようにしましょう。

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

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

カテゴリの一覧へ
新着記事
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.3
PHP&Python記事人気No3
Pythonのリストを辞書に変換する方法(dict() / zip())
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-