时间运算
时长与差值
时间运算 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 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 表示一小时,24 * 60 * 60 表示一天。
day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)两个 Time 之间的差值
用一个 Time 减去另一个 Time,会得到它们之间的秒数浮点值。
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)两个日期之间的差值
两个 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 日添加一个月,会落在二月最后一个有效日期,而不会产生无效日期。
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 会得到秒数(浮点值)
- Date 减去 Date 会得到天数(有理数)
next_month、>>、<<可以安全地移动月份
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)常见问题解答
「时间运算」课时是免费的吗?
是的 — 「时间运算」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。
「时间运算」这节课中我会学到什么?
时长与差值 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ruby Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「时间运算」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ruby Academy 课中编写并运行代码吗?
能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。