私はこのような行列を持っています:
my_matrix = [['regular', '16/03/2009', '17/03/2009', '18/03/2009'],
['regular', '20/03/2009', '21/03/2009', '22/03/2009'],
['rewards', '26/03/2009', '27/03/2009', '28/03/2009']]
最初の要素が「通常」か「報酬」かを確認し、最初の要素の各日付を確認し、何かを処理して値を返す必要があります。
例えば:
['regular', '20/03/2009', '21/03/2009', '22/03/2009']
最初の要素は'regular'
and です。配列の残りの部分をループして、各日付が平日か週末かを確認し、何かを処理する必要があります。平日より週末の方が多い場合は何かを処理し、そうでない場合は別の処理を行います。
私はこれを試しました:
HOTELS = {
:RIDGEWOOD => 'RidgeWood',
:LAKEWOOD => 'LakeWood',
:BRIDGEWOOD => 'BridgeWood'
}
def weekend?(date)
datetime = DateTime.parse(date.to_s)
datetime.saturday? || datetime.sunday?
end
def find_the_cheapest_hotel(text_file)
@costumer_request = File.open(text_file){|io| io.each_line.map{|line| line.split(/[:,\s]+/)}}
@costumer_request.each do |line|
line.each do |value|
if line.shift == 'regular'
if weekend?(line)
print 'weekend regular'
else
print 'weekday regular'
end
elsif line.shift == 'rewards'
if weekend?(line)
print 'weekend rewards'
else
print 'weekday rewards'
end
end
end
これを取得し['regular', '16/03/2009', '17/03/2009', '18/03/2009']
、この平日の平日の平日を返します最初だけでなく、配列ごとに何かを処理したい。