0

mmddyyyy私は、すべての命名規則(たとえば04102013、、など)を持つフォルダーの束を含むフォルダーを持っています04092013。これらすべてのパスを含むテキスト ファイルがあり、Ruby でパスを削除する配列を正常にプログラムしたので、日付だけが残ります (ただし、文字列として保存されていると思います)。

ここで行う必要があるのは、配列内の日付を取得し、それらに日数を追加することです。日数は静的であり、配列内のすべてに同じ値を全面的に適用する必要があります。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
4

2 に答える 2

1

試す:

myarray.map!{|s| Date.strptime(s, '%m%d%Y') + 7}
于 2013-04-08T20:47:00.530 に答える
0

あなたはとても近いです!配列値を日付コンストラクターに渡す必要があります。

myarray.map!{|date| Date::strptime(date, "%m%d%Y") + 7}
于 2013-04-08T20:47:07.390 に答える