本文介绍了迭代日期范围(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方式)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 05:09
查看更多