Каждое другое свидание - PullRequest
0 голосов
/ 24 февраля 2011

У меня есть эта логика, чтобы распечатать даты

def get_y_axis
 dates = ""
  ed = Date.today
  sd = Date.today - 30
  sd.upto(ed) do |date|
  dates << date.strftime("%b %d")
  dates << "|"
end
 return dates
end

печатается вот так

=> "Jan 24|Jan 25|Jan 26|Jan 27|Jan 28|Jan 29|Jan 30|Jan 31|Feb 01|Feb 02|Feb 03|Feb 04|Feb 05|Feb 06|Feb 07|Feb 08|Feb 09|Feb 10|Feb 11|Feb 12|Feb 13|Feb 14|Feb 15|Feb 16|Feb 17|Feb 18|Feb 19|Feb 20|Feb 21|Feb 22|Feb 23|"

Проблема в том, что мне нужен только через день ... не каждый день. Любые идеи

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Решение Марка в порядке, но он просто хотел показать метод each_with_index

def get_y_axis
  dates = []
  ed = Date.today
  sd = Date.today - 30
  (sd..ed).each_with_index do |date, i|
    dates << date.strftime("%b %d") if i % 2 == 0
  end
  dates.join("|")
end

Кроме того, в вашем решении вы получите "|"добавлено после последнего свидания.Я думаю, ты не хочешь этого.

1 голос
/ 24 февраля 2011

Я думаю, что, возможно, есть более элегантное решение, но это должно сработать:

def get_y_axis
  dates = ""
  ed = Date.today
  sd = Date.today - 30
  i = 0
  sd.upto(ed) do |date|
    if i % 2 == 0
      dates << date.strftime("%b %d")
      dates << "|"
    end
    i += 1
  end
  return dates
end

Только что добавил 'i', которое увеличивается на каждую итерацию. Даты добавляются только когда я чётный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...