【问题标题】:Ruby - How many days?红宝石 - 多少天?
【发布时间】:2019-07-09 09:57:43
【问题描述】:

我需要根据三个参数计算地球上生活了多少天:日、月和年。 我不知道如何将输入转换为日期;然后如何将日期转换为天数。 这是我目前的代码......

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

【问题讨论】:

  • 我想你忘记了代码,请编辑你的问题

标签: ruby time


【解决方案1】:

您可以直接使用以下命令创建Date 对象:

Date.new(year, month, day)

无需将其转换为字符串并进行解析。解析也可能很危险。 1982-04-02 是 2 月 4 日还是 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多