0

我有一个类 TimeDuration (要点),我可以处理简单的持续时间。

# Basic work:

ten_hours = TimeDuration.new("10 hours")
# => #<TimeDuration:0x936587c @duration=36000>

Time.now
# => 2013-09-13 09:12:07 +0200

ten_hours + Time.now
# => 2013-09-13 19:12:30 +0200

ten_hours + ten_hours + Time.now
=> 2013-09-14 05:12:44 +0200

但是一个不起作用:(:

 Time.now + ten_hours
 # TypeError: can't convert TimeDuration into an exact number
 # in `+'

有没有办法在 TimeDuration 中创建一个可行的方法?我不想操纵 Time-Class :)

谢谢

4

1 回答 1

1

time + numeric → time

加法 - 将一些秒数(可能是小数)添加到时间,并将该值作为新的 Time 对象返回。

Time.now + ten_hours不起作用,因为它需要数值,而不是对象。在您的情况下ten_hoursTimeDuration类的一个实例。

以下将起作用:

ten_hours = TimeDuration.new("10 hours")
Time.now + ten_hours.duration
# => 2013-09-13 23:50:35 +0530
于 2013-09-13T08:16:44.340 回答