我刚刚开始使用scala。我正在尝试定义一个隐式转换,这样就可以在一段时间内以这种方式迭代每一天:
for (day <- firstDay until lastDay) {
// a lot of interesting code goes here
}
到目前为止我设法做的是这样的事情:
implicit class DateTimeWithUntil(from: DateTime) {
def until(to: DateTime): Stream[DateTime] =
from #:: from.plusDays(1)
}
在方法之前实施的方法是什么? Stream适合这个吗?或者它应该是Iterator还是Seq?或其他?
由于
答案 0 :(得分:2)
我认为你正在寻找这样的东西:
import org.joda.time._
implicit class DateTimeOps (startDt: DateTime) {
def until(endDt: DateTime) = for(dayNo <- 0 until Days.daysBetween(startDt, endDt).getDays) yield(startDt.plusDays(dayNo))
}
for(day <- new DateTime() until new DateTime().plusDays(10)) println (day)
希望它有所帮助。