永井@KCです。 2001/12/31 100 2002/01/23 200 1999/10/23 300 2001/04/04 400 のような内容のファイルを日付順にソートするのに、以下のようなスクリプトを書きまし た。 str = ARGF.read data = str.split(/\n/).sort{ |x,y| xdate = x[/[0-9][0-9][0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]/].split(/\//) ydate = y[/[0-9][0-9][0-9][0-9]\/[0-9][0-9]\/[0-9][0-9]/].split(/\//) if xdate[0].to_i != ydate[0].to_i xdate[0].to_i - ydate[0].to_i elsif xdate[1].to_i != ydate[1].to_i xdate[1].to_i - ydate[1].to_i else xdate[2].to_i - ydate[2].to_i end } data.each{|x| print "#{x}\n" } これはこれで一応動作するのですが、年月日を順番に比較するところが あまりきれいではないので、Dateオブジェクトとして扱って比較したいのですが、 Dateクラスについてあまりよくわかっていないので困っています。 (オンラインヘルプを見てもなにやらnewメソッドがたくさんあって混乱しています)。 何かよい方法がございましたら教えて下さい。