У меня есть массив под названием «дата», который выглядит, как это ...рефакторинга массив в рубине
@dates = [
{:month => 'apr', :start_date => '2015-04-01', :end_date => '2015-05-01'},
{:month => 'may', :start_date => '2015-05-01', :end_date => '2015-06-01'},
{:month => 'jun', :start_date => '2015-06-01', :end_date => '2015-07-01'},
{:month => 'jul', :start_date => '2015-07-01', :end_date => '2015-08-01'},
{:month => 'aug', :start_date => '2015-08-01', :end_date => '2015-09-01'},
{:month => 'sep', :start_date => '2015-09-01', :end_date => '2015-10-01'},
{:month => 'oct', :start_date => '2015-10-01', :end_date => '2015-11-01'},
{:month => 'nov', :start_date => '2015-11-01', :end_date => '2015-12-01'},
{:month => 'dec', :start_date => '2015-12-01', :end_date => '2016-01-01'},
{:month => 'jan', :start_date => '2016-01-01', :end_date => '2016-02-01'},
{:month => 'feb', :start_date => '2016-02-01', :end_date => '2016-03-01'},
{:month => 'mar', :start_date => '2016-03-01', :end_date => '2016-04-01'}
]
Я хотел бы, чтобы реорганизовать это, но это за меня. Я пытался работать на что-то вроде этого, но заблудился в том, что даты января/февраля/марта будет в следующем календарном году ....
@months = I18n.t("date.abbr_month_names").compact.rotate(3).map(&:downcase)
@dates = []
@[email protected]_with_index do |mon, x|
@dates << {:month => mon, :start_date => Date.parse(mon).beginning_of_month, :end_date => Date.parse(mon).end_of_month + 1}
end
это почти работает, но за последние три месяца в Следующий год. У меня есть чувство, что я могу что-то с индексом, но не могу обмануть его
любые идеи?
Вы не указано, что желаемый результат. Хочешь оставшиеся месяцы через год? Или вам нужен другой ярлык, если он будет в следующем году «feb 2016»? – max
Я не уверен, что вы ищете, но если вы предоставляете пример использования или контекста, я могу уточнить свой ответ. –