2010-05-17 20 views

Odpowiedz

31

(time1 - Time2)/60

Jeżeli przedmioty czasowe są ciąg, Time.parse(time) je najpierw

+3

nie należy * 24 * 60? – mscccc

+7

Zależy, czy przedmiotami są obiekty Time, czy obiekty Date. Czas # - zwraca liczbę sekund, natomiast Data # - zwraca liczbę dni. –

55

Jeśli odjąć dwie daty lub DateTime obiektów, wynik jest racjonalna reprezentujący liczba dni między nimi. Co potrzebne jest:

a = Date.new(2009, 10, 13) - Date.new(2009, 10, 11) 
(a * 24 * 60).to_i # 2880 minutes 

lub

a = DateTime.new(2009, 10, 13, 12, 0, 0) - DateTime.new(2009, 10, 11, 0, 0, 0) 
(a * 24 * 60).to_i # 3600 minutes 
+0

Nie wiem, czy mogło się zmienić między wersjami (odpowiedź Chubasa jest powszechna w Internecie), ale od wersji 1.9.3p364 jest to poprawna odpowiedź. – Ephemera

+0

Myślę, że moja odpowiedź była poprawna, ponieważ przed wydaniem 1.9.3 :) –

+0

Druga część odpowiedzi nie jest poprawna. 'DateTime' zwraca liczbę sekund, a przyjęta odpowiedź powinna być zastosowana w tym przypadku - czyli' (DateTime.new - DateTime.new)/60' – Aleks

Powiązane problemy