本文介绍了迭代日期范围(scala方式)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
鉴于开始日期和结束日期,我希望白天使用foreach,map或类似函数迭代它。类似
Given a start and an end date I would like to iterate on it by day using a foreach, map or similar function. Something like
(DateTime.now to DateTime.now + 5.day by 1.day).foreach(println)
我正在使用,但如果我使用上面的语法,我会返回一个joda Interval对象,我怀疑它也不是一个范围日期,但有一段毫秒。
I am using https://github.com/nscala-time/nscala-time, but I get returned a joda Interval object if I use the syntax above, which I suspect is also not a range of dates, but a sort of range of milliseconds.
编辑:这个问题已经过时了。正如主页所建议的那样,如果您使用的是Java 8,则应该从入门或迁移到。
The question is obsolete. As advised on the joda homepage, if you are using java 8 you should start with or migrate to java.time.
推荐答案
您可以使用 plusDays
:
val now = DateTime.now
(0 until 5).map(now.plusDays(_)).foreach(println)
给定开始和结束日期:
import org.joda.time.Days
val start = DateTime.now.minusDays(5)
val end = DateTime.now.plusDays(5)
val daysCount = Days.daysBetween(start, end).getDays()
(0 until daysCount).map(start.plusDays(_)).foreach(println)
这篇关于迭代日期范围(scala方式)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!