有人可以向我解释一下它是如何工作的吗?


 while minutes> = 60 ...



 Ruby如何知道有多少小时?


 def time_conversion(分钟)&# XA;小时= 0

而分钟> = 60
小时=小时+ 1
分钟=分钟 - 60
端
返回时间
结束



答案 0 :(得分:2)
嗯,请看几个例子。
如果minutes
为125,则应返回多少小时?
125 - 60 - 60 = 5
。那里有两个60,所以两个小时。
如果minutes
为65,应返回多少小时?
65 - 60 = 5
。只有一个60,所以一个小时。
Ruby代码执行相同的操作,计算它可以减去60的次数,直到它不再减去为止(即,减去另外60将导致负数)。它使用while
循环执行此操作。
while
循环中的两行:
hours = hours + 1
minutes = minutes - 60
更新hours
和minutes
变量,就像我们在示例中所做的那样。当minutes
小于60时,我们会停止并返回我们计算的总小时数。
答案 1 :(得分:0)
这个简单的方法怎么样:
def time_conversion(minutes)
hours = (minutes/60 % 60)
return hours
end
> time_conversion(125)
#=> 2
> time_conversion(165)
#=> 2
现在让我们将其转换为 "HH:MM"
def time_conversion(minutes)
hh_mm = [minutes / 60 % 60, minutes % 60].map { |t| t.to_s.rjust(2,'0') }.join(':')
return hh_mm
end
> time_conversion(125)
#=> "02:05"
> time_conversion(165)
#=> "02:45"