Как перебрать дни, начиная с сегодняшнего дня и до целевой даты - PullRequest
0 голосов
/ 07 октября 2018

Я пытался использовать ответы для этого вопроса , но не смог получить что-то, что сработало.

Я хочу иметь возможность циклически проходить дни, начиная с сегодняшнего дня и доходя до целидата установлена ​​для объекта.

Целевая дата имеет тип Date.

Я пробовал несколько вещей, все варианты ответов выше, это была последняя попытка.

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

Это ничего не проходит через цикл и возвращает 0 в качестве счетчика.Прямо сейчас это только в dev, с одним объектом, поэтому я знаю, что между этим моментом и целью (которая установлена ​​на 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 вместо :Time в конце).

Может ли кто-нибудь помочь мне запустить этот цикл для каждого дня между текущей и целевой датой?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Вам нужна петля?Если нет, попробуйте это:

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

Я надеюсь, что это полезно для вас.:)

0 голосов
/ 07 октября 2018

Только что написал этот, используя метод de Date.upto (), и это сработало ... Вы просто должны убедиться, что 'goal.target_date' также является допустимым экземпляром Date

require 'date'

from = Date.today
goto = from + 3

from.upto(goto) do |date|
  puts date
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...