Я новичок в ruby, и когда я изучаю класс Time в ruby (фактически я слежу за видео VTC), я нашел что-то, что не могу сделать, я хочу подсчитать год рождения одного человека в соответствии с его возрастом,
например, когда человек говорит, что ему исполнилось 20 лет, я должен вычислить год его рождения.
class Person
attr_accessor :name,:age,:year_born
def initialize(name,age)
@name=name
@age=age
@year_born=(Time.now - age*31556962).year
end
def days_alive
@age*365
end
end
В следующем коде все работает хорошо, кроме
@year_born=(Time.now - age*31556962).year
Я получаю ошибку при попытке
Person.new("name",43).year_born
что говорит:
ArgumentError: time must be positive
./person.rb:6:in `-'
./person.rb:6:in `initialize'
Я знаю, что Time.now вернет секунды с 1970 года, то есть
(2011-1970)<43
То есть Time.now-43*31556962
возвращает недопустимое значение, но я хочу знать, как реализовать мое требование?