我正在尝试计算从开始日期到结束日期的“n”天间隔。函数签名将 start_date、end_date、interval 作为参数返回一个地图,其中包含给定间隔的开始、结束天数列表。
Example: start_date:2018-01-01 , End_date : 2018-02-20 interval: 20
预期输出:
2018-01-01 , 2018-01-20 (20天)
2018-01-21 , 2018-02-09 (20天)
2018-02-09 , 2018-01-20 (剩余)
我尝试用 scala 写作,但我不觉得这是一种适当的功能性写作风格。
case class DateContainer(period: String, range: (LocalDate, LocalDate))
def generateDates(startDate: String, endDate: String,interval:Int): Unit = {
import java.time._
var lstDDateContainer = List[DateContainer]()
var start = LocalDate.parse(startDate)
val end = LocalDate.parse(endDate)
import java.time.temporal._
var futureMonth = ChronoUnit.DAYS.addTo(start, interval)
var i = 1
while (end.isAfter(futureMonth)) {
lstDDateContainer = DateContainer("P" + i, (start, futureMonth)):: lstDDateContainer
start=futureMonth
futureMonth = ChronoUnit.DAYS.addTo(futureMonth, interval)
i += 1
}
lstDDateContainer= DateContainer("P" + i, (start, end))::lstDDateContainer
lstDDateContainer.foreach(println)
}
generateDates("2018-01-01", "2018-02-20",20)
谁能帮我写一个实用的风格。