【问题标题】:How to loop through days, starting today and through a target date如何循环从今天开始到目标日期的天数
【发布时间】:2018-10-06 21:10:42
【问题描述】:

我尝试使用答案for this question,但无法获得有效的结果。

我希望能够从今天开始循环到为对象设置的目标日期。

目标日期的类型为Date。

我已经尝试了一些东西,上面答案的所有变体,这是最后一次尝试。

count = 0
Time.now..goal.target_date do 
  count += 1
end

这不会遍历任何内容并返回 0 作为计数。目前这只是在开发中,只有一个对象,所以我知道从现在到目标(定于今年 12 月 31 日)之间还有很多天。

我也试过了。

count = 0
Date.new(Time.now)..goal.target_date do |date|
  count += 1
end

返回错误undefined method 'div' for 2018-10-06 17:23:41 -0500:Time。 (如果我在末尾使用Date.today 而不是:DATE,则会出现同样的错误)。

谁能帮我让它在现在和目标日期之间的每一天运行循环?

谢谢!

【问题讨论】:

标签: ruby loops date


【解决方案1】:

刚刚使用 de Date.upto() 方法编写了这个,它起作用了……你只需要确保 'goal.target_date' 也是 Date 的有效实例

require 'date'

from = Date.today
goto = from + 3

from.upto(goto) do |date|
  puts date
end

【讨论】:

    【解决方案2】:

    你需要一个循环吗?如果没有,试试这个:

    count = (goal.target_date - Date.current).to_i
    

    我希望它对你有用。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 2021-12-30
      • 2019-04-05
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      相关资源
      最近更新 更多