Руби - Сколько дней? - PullRequest
       9

Руби - Сколько дней?

2 голосов
/ 09 июля 2019

Мне нужно рассчитать, сколько дней проживало на земле, основываясь на трех параметрах: день, месяц и год. Я не знаю, как преобразовать входные данные в дату; а затем, как преобразовать дату в количество дней. Это мой код на данный момент ...

require 'date'
def age_in_days(day, month, year)
  lived = (day+"-"+month+"-"+year).to_s
  date_lived Date.parse(lived)
  return (Date.today - date_lived).to_i
end

1 Ответ

7 голосов
/ 09 июля 2019

Вы можете создать объект Date напрямую с помощью:

Date.new(year, month, day)

Нет необходимости преобразовывать его в строку и анализировать.Разбор также может быть опасным.1982-04-02 4 февраля или 2 апреля?

Вы не можете добавить число и строку, как это, кстати.1 + '2' должно быть '12' или 3?Ruby не может решить за вас, поэтому вам нужно явно преобразовать целые числа в строку.

day.to_s + "-" + month.to_s + "-" + year.to_s

или просто

[day, month, year].join('-')

Но вам все равно это не нужно:

require 'date'

def age_in_days(day, month, year)
  birthdate = Date.new(year, month, day)
  (Date.today - birthdate).to_i
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...