2013-04-08 7 views
0

У меня есть папка, содержащая множество папок, все с соглашением об именах mmddyyyy (например, 0410201310, 04092013 и т. Д.). У меня есть текстовый файл, содержащий все эти пути, и он успешно запрограммировал в Ruby массив, который удаляет путь, поэтому мы остаемся с датой (однако я считаю, что она хранится как жало).строка в формате ddmmyyyy до настоящего времени

Что мне нужно сделать сейчас, это взять даты в массиве и добавить к ним количество дней. Количество дней будет статичным, и одно и то же значение должно быть применено по всем параметрам для всего массива. На 8-й строке я получаю недопустимую дату (ArgumentError). Конечным результатом должен быть массив с 7 сутками для каждого элемента массива. Сейчас я даже не могу получить значения в формате даты.

require 'date' 
myarray = IO.readlines "/path/to/myfile.txt" 
myarray.each do |s| 
    s.gsub!('/path/to/my/dated/folders/', '') 
end 
print myarray 

myarray.map! {Date.strptime("%m%d%Y")} 
# myarray.map! {+(7)} 
print myarray 

ответ

1

Try:

myarray.map!{|s| Date.strptime(s, '%m%d%Y') + 7} 
0

Вы очень близки! Вам нужно передать значение массива в конструктор даты.

myarray.map!{|date| Date::strptime(date, "%m%d%Y") + 7} 
Смежные вопросы