我知道有日期#步驟的方法,但它需要幾天的步驟。我需要給定日期的每一分鐘的範圍或陣列(1440個條目)。如何在Ruby 1.9.3中每天的每分鐘獲取一個範圍或數組?
什麼是最好的,最有效的方式在Ruby 1.9.3中做到這一點?
最後,我要格式化輸出使用這樣的:
00:00:00
00:01:00
00:02:00
...
23:59:00
我知道有日期#步驟的方法,但它需要幾天的步驟。我需要給定日期的每一分鐘的範圍或陣列(1440個條目)。如何在Ruby 1.9.3中每天的每分鐘獲取一個範圍或數組?
什麼是最好的,最有效的方式在Ruby 1.9.3中做到這一點?
最後,我要格式化輸出使用這樣的:
00:00:00
00:01:00
00:02:00
...
23:59:00
這可能讓你開始:
0.upto((60 * 24) - 1).each { |m| puts "%02d:%02d:00" % [m/60, m % 60] }
如果你在一個Rails應用程序/有ActiveSupport可用,你可能更喜歡:'(1.day/60).times {| m | ...}' – rfunduk 2012-03-21 15:52:39
你可以一步一步反正:
require 'date'
today = Date.today.to_datetime
tomorrow = today+1
min = 1.0/(24*60)
today.step(tomorrow, min){|d| p d.strftime("%H:%M:%S")}
謝謝。看起來,1.9.3中的'Date#step'更改爲期望step參數在幾天之內,它用於期望秒。如果你給它一個由'ActiveSupport :: Duration'('Date.today.step(Date.tomorrow,30.minutes.seconds')封裝的步驟參數,它將會爆發一個「期望的數字」TypeError '。趣味時代在這裏調試1.9.3升級老闆。 – ches 2013-02-12 15:42:15
23小時或25小時的日子呢? – tadman 2012-03-21 15:53:03
是的,顯示23和25小時的日子有些人也是。 – 2012-03-21 18:56:59