時刻の算術演算
期間と差分です。
「時刻の算術演算」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。
Time への秒の加算
Time の算術演算は秒単位で行われます。Time に数値を加えると、その秒数だけ先の時刻に移動します。
t = Time.new(2026, 5, 30, 12, 0, 0)
later = t + 60
puts(later.min)秒の減算
数値を減算すると、その秒数だけ Time が過去の時刻に移動します。
t = Time.new(2026, 5, 30, 12, 0, 0)
earlier = t - 3600
puts(earlier.hour)わかりやすい期間の表現
意図が明確になるよう、期間は秒の積として表します。60 は 60 秒、60 * 60 は 1 時間、24 * 60 * 60 は 1 日です。
day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)2 つの時刻の差
一方の Time からもう一方の Time を減算すると、2 つの間の秒数を表す Float が得られます。
a = Time.new(2026, 5, 30, 12, 0, 0)
b = Time.new(2026, 5, 30, 13, 30, 0)
diff = b - a
puts(diff)
puts(diff / 60)期間の変換
整数演算を使って、秒単位の差を時間と分に変換します。
secs = 5400
puts("#{secs / 3600}h #{(secs % 3600) / 60}m")日単位の日付計算
Time とは異なり、Date クラスは日単位で加算します。整数を加えると、その日数だけ先の日付に移動します。
require 'date'
d = Date.new(2026, 5, 30)
puts((d + 5).to_s)2 つの日付の差
2 つの Date を減算すると、日数を表す Rational が返されます。to_i を呼び出すと、日単位の整数になります。
require 'date'
a = Date.new(2026, 1, 1)
b = Date.new(2026, 12, 31)
puts((b - a).to_i)月と年の移動
Date クラスには、月単位で安全に移動するための next_month、prev_month、next_year、>> / << 演算子があります。
require 'date'
d = Date.new(2026, 5, 30)
puts(d.next_month.to_s)
puts((d >> 3).to_s)月末の日付を安全に扱う
月を移動するときは、有効な日付の範囲に収まるよう調整されます。1 月 31 日に 1 か月を加えると、2 月の有効な最終日に移動し、存在しない日付になることはありません。
require 'date'
d = Date.new(2026, 1, 31)
puts((d >> 1).to_s)指定日までの日数を数える
よくある処理に、将来の日付までの日数を求めることがあります。対象の日付から今日の日付を減算します。
require 'date'
target = Date.new(2026, 12, 25)
from = Date.new(2026, 5, 30)
puts("#{(target - from).to_i} days to go")経過時間の計測
コードの実行時間を計測するには、実行前と実行後に Time.now を取得し、その差を計算します。
start = Time.now
sum = 0
1000.times { |i| sum += i }
puts("sum=#{sum}")
puts((Time.now - start) >= 0)クイックチェック
一方の Time からもう一方の Time を減算すると、Ruby は何を返しますか。
まとめ: Time の算術演算
これで時刻を使った計算ができるようになりました。
- Time は秒単位で加算・減算します
- Date は日単位で加算・減算します
- Time から Time を減算すると秒数(Float)になります
- Date から Date を減算すると日数(Rational)になります
next_month、>>、<<で月単位に安全に移動できます
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)よくある質問
「時刻の算術演算」レッスンは無料ですか?
はい。「時刻の算術演算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。
「時刻の算術演算」で何を学びますか?
期間と差分です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ruby Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「時刻の算術演算」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このRuby Academyレッスンでコードを書いて実行できますか?
はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。