Задать вопрос
@eldar_web

Как в Ruby из двух дат в переменных можно получить разницу в месяцах?

К примеру, есть переменные:
start_date = '01.09.2015'
finish_date = '01.02.2016'


На выходе я хочу получить такие данные (в массиве):
09.2015
10.2015
11.2015
12.2015
01.2016
02.2016

Как можно найти решение?
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
nbekseitov
@nbekseitov
Ruby developer
Внесу свои 5 копеек
require 'date'
start = Date.parse('2012-09-02')
finish = Date.parse('2013-11-02')
date_months = (start..finish).map {|d| Date.new(d.year, d.month) }.uniq
date_months.map {|d| d.strftime "%m/%Y" }


Результат
["09/2012", "10/2012", "11/2012", "12/2012", "01/2013", "02/2013", "03/2013", "04/2013", "05/2013", "06/2013", "07/2013", "08/2013", "09/2013", "10/2013", "11/2013"]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Изи:

require 'date'
start = Date.parse('2012-09-02')
finish = Date.parse('2013-11-30')
dates_array = (start..finish).map(&:to_s)


последняя строчка по умолчанию Array
Ответ написан
@thepry
Ruby on rails, 1С разработчик
finish = Date.parse('2015-09-02').beginning_of_month
start = Date.parse('2012-11-30').beginning_of_month
[].tap do |arr|
    while start <= finish do
        arr << start
        start += 1.month        
    end
end
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы