Scala使用JodaTime定义流

时间:2013-10-18 12:43:07

标签: scala implicit

我刚刚开始使用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?或其他?

由于

1 个答案:

答案 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)

希望它有所帮助。