2016-04-18 16 views
0

24時間形式の1日の可能性をすべてカウントしたいと思います。xx:xx(Stringにする必要があります)1日の分と時間をカウントアップし、1桁の時に分と時間の先頭に0を加えます。 - Ruby

私が先頭にゼロになって苦労していますが:ここ

は、私がこれまで持っているものです。

24.times { |h| 60.times { |m| puts "#{h}:#{m}" } } 

0:0 
0:1 
... 
0:10 
... 
1:1 
... 
10:1 
... 
23:59 
を与えます

私は両方の時間にゼロをリードしているのが好きと

00:00 
... 
23:59 

をもminうその1行で行うことができますか私は離れてこれらのループを分割する必要がありますか?

+0

あなたの代わりに時間OBJの文字列としてこれをやっている理由は? – Anthony

+0

はい、理由があります... – mahatmanich

+0

@mahatmanich何が理由ですか?あなたの制約を知ることは常に重要です。 – tadman

答えて

1

"0Nd" % iのような数字を書式設定することができます。Nは埋め込み量(あなたの場合は2)で、iは埋めたい数字です。

24.times { |h| 60.times { |m| puts "#{"%02d" % h}:#{"%02d" % m}" } } 
+0

パーフェクト!ありがとうございました! – mahatmanich

3
(24*60).times { |m| puts "%02d:%02d" % m.divmod(60) } 
00:00 
00:01 
00:02 
00:03 
00:04 
00:05 
00:06 
00:07 
00:08 
00:09 
00:10 
... 
23:55 
23:56 
23:57 
23:58 
23:59 

別の方法:

require 'time' 
(24*60).times { |t| puts Time.at(t).strftime("%H:%M") } 
+0

その2番目は本当にファンキーです! – mahatmanich

関連する問題