2011-01-08 29 views
1

顯示一天中每個小時最簡單的方式,我有我想要的顯示當天的小時像這樣的日曆畫面:在Ruby中

12:00am 

1:00am 

2:00am 

.. 

4:00pm 

5:00pm 

etc. 

作爲一個總的Ruby小白,我想知道是否有人可以幫助我找出最簡單的顯示方式。

回答

2

您可以生成這些像這樣:

​​

或者乾脆寫出來的數組(這是更有效):

array = ["12:00am", "1:00am", "2:00am", "3:00am", "4:00am", "5:00am", "6:00am", "7:00am", "8:00am", "9:00am", "10:00am", "11:00am", "12:00pm", "1:00pm", "2:00pm", "3:00pm", "4:00pm", "5:00pm", "6:00pm", "7:00pm", "8:00pm", "9:00pm", "10:00pm", "11:00pm"] 

然後,您可以打印這些不過你想要的,如。

array.each do |el| 
    puts el 
end 
3
#!/usr/bin/env ruby 

# without using actual `Date` objects ... 

p ["12:00am"] + (1..11).map {|h| "#{h}:00am"}.to_a + 
    ["12:00pm"] + (1..11).map {|h| "#{h}:00pm"}.to_a 

["12:00am", "1:00am", "2:00am", "3:00am", "4:00am", "5:00am", "6:00am", 
"7:00am", "8:00am", "9:00am", "10:00am", "11:00am", "12:00pm", "1:00pm", 
"2:00pm", "3:00pm", "4:00pm", "5:00pm", "6:00pm", "7:00pm", "8:00pm", 
"9:00pm", "10:00pm", "11:00pm"] 

還是用實際DateTime對象和%I:%M%pformat

#!/usr/bin/env ruby 

require "Date" 

for hour in 0..23 do 
    d = DateTime.new(2010, 1, 1, hour, 0, 0) 
    p d.strftime("%I:%M%p") 
end 

這將打印:

"12:00AM" 
"01:00AM" 
"02:00AM" 
"03:00AM" 
"04:00AM" 
"05:00AM" 
"06:00AM" 
"07:00AM" 
"08:00AM" 
"09:00AM" 
"10:00AM" 
"11:00AM" 
"12:00PM" 
"01:00PM" 
"02:00PM" 
"03:00PM" 
"04:00PM" 
"05:00PM" 
"06:00PM" 
"07:00PM" 
"08:00PM" 
"09:00PM" 
"10:00PM" 
"11:00PM"