我有一个日期数组,我需要确保这些日期中的年份都早于 1900 年。
我的数组看起来像
[
[0] "1980-10-03",
[1] "1981-10-03",
[2] "2001-10-03"
]
现在我已经能够做的,这对我来说很有效,就是拿一个索引并将它们拆分出来做我需要的事情。这样
splitted_birth_date = array.first.split("-")
这给了我一个输出
[
[0] "1980",
[1] "10",
[2] "03"
]
我继续
splitted_birth_date.first.to_i > 1900?
等等,能够进行编辑和我完成这项任务所需的东西。
不过,我的问题是我在循环遍历数组中的所有元素并拆分它们时遇到了问题。
我试过了
array.each do |birth_date|
birth_date.to_i
end
但似乎什么也没发生。最终,我在循环访问数组中的记录并操作其中的必要部分时遇到了麻烦。
array = ["1980-10-03", "1981-10-03", "2001-10-03"]
yr = 1990
res = array.select{|d| Date.parse(d).year < yr}
从示例中,我假设要返回 1900 年之前(因此不符合要求(的日期(可能是空的(数组。最简单的方法是简单地将日期字符串转换为整数,然后选择整数小于 1900 的日期。例如,"1980-10-03".to_i #=> 1980
.
arr = ["1980-10-03", "1981-10-03", "1899-11-12", "2001-10-03"]
arr.select { |s| s.to_i < 1900 }
#=> ["1899-11-12"]
请参阅字符串#to_i。