我有一个数组:@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方法应该最廉价的酒店基于给定的数据输出。
在哪里的问题? – tessi 2013-04-28 18:16:25
首先:检查客户是定期还是奖励客户。第二:检查给定日期是否是周末。如果周末显示消息“这是一个周末”,则显示“这不是一个周末” – 2013-04-28 18:19:59
是否要验证阵列中的所有日期均为周末日期,并且如果第一个条目不是“定期或奖励?什么是预期的输出?如果两者都匹配并且所有日期均为周末,则为真?或匹配日期的列表? – Doon 2013-04-28 18:28:06