0Pricing
Ruby Academy · レッスン

時刻の算術演算

期間と差分です。

「時刻の算術演算」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 時刻と日付のクラス
  2. 解析とフォーマット
  3. 時刻の算術演算
  4. タイムゾーン
← Ruby Academyに戻る