2017-02-14 76 views
-3

有人可以请向我解释这是如何工作的?解释时间转换为分钟和小时

While minutes >=60... 

Ruby如何知道有多少小时?

def time_conversion(minutes) 
    hours = 0 

    while minutes >= 60 
    hours = hours + 1 
    minutes = minutes - 60 
    end 
    return hours 
end 
+0

的while循环计算它们。这是你遇到的基本数学问题,还是Ruby代码? –

+0

这是一些非常有缺陷的代码。你在哪里找到它? '小时,分钟=分钟/ 60分钟%60'这个工作完全一样。 – tadman

+0

“Ruby如何知道有多少小时? - 它没有。这就是代码计算的内容。 –

回答

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" 
+0

这对我有意义。谢谢。我只是没有得到另一个... – imperfectskillz

+0

@imperfectskillz:如果这个答案有助于你解决你的问题,那么你可以标记(勾)它作为回答 –

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 

更新hoursminutes变量,就像我们在我们的例子一样。当minutes小于60时,我们停止并返回我们计算的总小时数。

+0

我只是不明白红宝石如何知道分钟和小时之间的相关性。它怎么知道一小时内有60分钟? – imperfectskillz

+0

@imperfectskillz我们通过写作60告诉了它。 – bejado

+0

它说小时= 60分钟? – imperfectskillz