我有一个数组:@costumer_request = ['regular', '12/03/2013', '14/03/2013']
。我需要验证第一项是“常规”还是“奖励”,然后验证数组其余部分的每个日期是否是周末。我做了这样的事情:
@costumer_request.each_with_index do |item, index|
if index[0] == 'regular:'
if DateTime.parse(index).to_date.saturday? or DateTime.parse(index).to_date.sunday?
print "It's a weekend"
else
print "It's not a weekend"
end
end
end
require 'date'
module HotelReservation
class Hotel
HOTELS = {
:RIDGEWOOD => 'RidgeWood',
:LAKEWOOD => 'LakeWood',
:BRIDGEWOOD => 'BridgeWood'
}
def weekend?(date)
datetime = DateTime.parse(date)
datetime.saturday? || datetime.sunday?
end
def find_the_cheapest_hotel(text_file)
@weekends_for_regular = 0
@weekdays_for_regular = 0
@weekends_for_rewards = 0
@weekdays_for_rewards = 0
File.open(text_file).each_line do |line|
@costumer_request = line.delete!(':').split
@costumer_request = line.delete!(',').split
#Here I want to process something in each array
#but if I do something like bellow, it will
#store the result of the two arrays in the same variable
#I want to store the result of the first array, process something
#and then do another thing with the second one, and so on.
if(@costumer_request.first == 'regular')
@costumer_request[1..-1].each do |date|
if (weekend?(date))
@weekends_for_regular +=1
else
@weekdays_for_regular +=1
end
end
else
if(@costumer_request.first == 'rewards')
@costumer_request[1..-1].each do |date|
if (weekend?(date))
@weekends_for_rewards +=1
else
@weekdays_for_rewards +=1
end
end
end
end
end
end
end
end
find_the_cheapest_hotel 方法应该根据给定的数据输出最便宜的酒店。