2017-02-14 42 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

相關問題