好吧,我对红宝石非常陌生,它是第一个程序,可以在Eclipse和Windows上运行,根本无法使其读取或调试良好。我调试时不会读取控制台。帮助!
require 'time'
#defining limitations on arrays
Day = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
Number = [[1,2],[3,4],[5,6],[7,8],[9,0]]
timeFromM = Time.new(2010, 03, nil, 7)
timeToM = Time.new(2020, 12, nil, 9, 30)
timeFromE = Time.new(2010, 03, nil, 16)
timeToE = Time.new(2020, 12, nil, 19, 30)
range1 = timeFromM..timeToM
range2 = timeFromE..timeToE
#movement allowance
def carOnTheRoad (plateNumber, dateRoad, timeRoad)
$i = Day.length
date = dateRoad + timeRoad
time = Time.parse(date)
print time
plateEnd = plateNumber[plateNumber.length-1]
while $i > 0 do
if date.strftime("%A")==Day[$i] && Number[$i]==plateEnd && range1===time && range2===time
puts("Car can't be on the road")
else
puts("Car can be on the road")
end
$i -=1
end
end
#interacting with user
print "Please enter your Plate Number <Ex: PXX0000>"
plate = gets.chomp
print "Please enter the date <DD/MM/YYYY>"
date = gets.chomp
print "Please enter the time <24:59>"
time = gets.chomp
carOnTheRoad(plate, date, time)
这是控制台输出:
Please enter your Plate Number <Ex: PXX0000>PZZ0990
Please enter the date <DD/MM/YYYY>26/08/2016
Please enter the time <24:59>8:30
C:/Ruby23-x64/lib/ruby/2.3.0/time.rb:302:in `local': argument out of range (ArgumentError)
from C:/Ruby23-x64/lib/ruby/2.3.0/time.rb:302:in `make_time'
from C:/Ruby23-x64/lib/ruby/2.3.0/time.rb:366:in `parse'
您的错误与行有关 date = dateRoad + timeRoad
dateRoad = 26/08/2016
timeRoad = 8:30
当您添加它们时,您会得到
date = '26/08/20168:30'
这就是为什么您会收到超出范围的错误的原因。
您需要在两个值之间添加一个空格。
date = dateRoad + " " + timeRoad #=> '26/08/2016 8:30'
现在有一个新的错误
“ 26/08/2016 8:30”的未定义方法“ strftime”:字符串
我将假设strftime
是您定义的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句