1

如何:迭代表行,其中每行都按时间标记。第一行是开始时间,最后一行是结束时间,迭代应该以 15 分钟的间隔创建中间的每一行。

IE

开始时间:'06:00',结束时间:'07:00'

06:00

06:15

06:30

06:45

07:00

更新

start_time = Time.local(2013, 5, 25, 06, 00) 
  end_time = Time.local(2013, 5, 25, 20, 00) 

  begin
    start_time += 15.minutes
    puts start_time
  end while start_time < end_time

这将返回 nil ......但是,不应该......它应该返回值

4

2 回答 2

1

这是我想出的,正是我需要的。受到jethroos回答的启发。

def cal_times

start_time = Time.local(2013, 5, 25, 06, 00) 
  end_time = Time.local(2013, 5, 25, 20, 00) 
     times = [start_time.strftime('%H:%M')]

  begin
    start_time += 15.minutes
    times << start_time.strftime('%H:%M')
  end while start_time < end_time

  times

end
于 2013-05-26T04:10:03.097 回答
0

我不确定我是否正确理解了这个问题,但这是一个如何以 15 分钟间隔生成时间的示例

1.9.3p392 :029 > a = Time.now
=> 2013-05-25 23:39:44 +0200 
1.9.3p392 :030 > a = a - a.sec - a.min%15*60
=> 2013-05-25 23:30:00 +0200 
1.9.3p392 :031 > b = a + 1.hour
=> 2013-05-26 00:30:00 +0200 
1.9.3p392 :032 > begin
1.9.3p392 :033 >     a += 15.minutes
1.9.3p392 :034?>   puts a
1.9.3p392 :035?>   end while a < b
2013-05-25 23:45:00 +0200
2013-05-26 00:00:00 +0200
2013-05-26 00:15:00 +0200
2013-05-26 00:30:00 +0200

也许这有点帮助

于 2013-05-25T21:50:03.890 回答