我需要根据三个参数来计算地球上有多少天:天,月和年。我不知道如何将输入转换为日期。然后如何将日期转换为天数。这是我目前的代码...
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
Run Code Online (Sandbox Code Playgroud)
您可以Date直接使用以下方法创建对象:
Date.new(year, month, day)
Run Code Online (Sandbox Code Playgroud)
无需将其转换为字符串并进行解析。解析也可能很危险。是1982-04-022月4日还是4月2日?
您不能添加这样的数字和字符串,顺便说一句。应该1 + '2'是'12'还是3?Ruby无法为您决定,因此您需要将整数显式转换为字符串。
day.to_s + "-" + month.to_s + "-" + year.to_s
Run Code Online (Sandbox Code Playgroud)
或简单地
[day, month, year].join('-')
Run Code Online (Sandbox Code Playgroud)
但是您仍然不需要它:
require 'date'
def age_in_days(day, month, year)
birthdate = Date.new(year, month, day)
(Date.today - birthdate).to_i
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |