Я пытаюсь вычислить интервал '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)
Может ли кто-нибудь помочь мне написать в функциональном стиле.