我需要一个方法来返回由例如小时
分割的DateTime对象列表实施例
DateTime start = DateTime.now() //2017-01-01 11:00:00
DateTime end = DateTime.now().plusHours(10) //2017-01-01 21:00:00
预期结果
List[2017-01-01 **11**:00:00,2017-01-01 **12**:00:00,2017-01-01**13**:00:00...
2017-01-01 **21**:00:00]
现在我正在使用我不满意的解决方法
while(start.isBefore(end)){
start = startVar.plusHours(1)
//do something with start
}
请分享您的想法。
答案 0 :(得分:3)
如果您知道所需的List
中有多少元素,则可以使用List.iterate
:
List.iterate(DateTime.now(), 10)(_.plusHours(1))
但是如果您有开始日期和结束日期,则可以使用Iterator.iterate
然后将其转换为List
(或直接处理Iterator
中的值):
val start = DateTime.now()
val end = DateTime.now().plusHours(10)
Iterator.iterate(start)(_.plusHours(1)).takeWhile(_.isBefore(end)).toList