计算一天中的分钟数和小时数,当个位数时将前导零添加到分钟和小时 - Ruby
Counting up minutes and hours of a day, adding leading zero to min and hour when single digit - Ruby
我想以 24 小时格式计算一天中所有小时分钟的可能性xx:xx(需要在字符串中)
但是我正在努力获取前导零:
这是我目前的情况:
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
可以在那一行中完成吗?还是我需要将这些循环分开?
您可以使用以下语法格式化数字:"0Nd" % i
其中 N
是填充量(在您的情况下为 2),i
是您要填充的数字。
24.times { |h| 60.times { |m| puts "#{"%02d" % h}:#{"%02d" % m}" } }
(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") }
我想以 24 小时格式计算一天中所有小时分钟的可能性xx:xx(需要在字符串中)
但是我正在努力获取前导零:
这是我目前的情况:
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
可以在那一行中完成吗?还是我需要将这些循环分开?
您可以使用以下语法格式化数字:"0Nd" % i
其中 N
是填充量(在您的情况下为 2),i
是您要填充的数字。
24.times { |h| 60.times { |m| puts "#{"%02d" % h}:#{"%02d" % m}" } }
(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") }