我需要创建一个函数,以字符串日期三元组(年、月、日)的形式返回给定年份的所有日期的序列。
def allDaysForYear(year: String) = {
...// get every month and day for that $year
}
然后我会这样使用:
for ((year, month, day) <- allDaysForYear("2017"))
yield doSomethingElse(p(year), p(month), p(day))
在我的尝试中,我使用了日历对象和迭代器[日历],但没有设法拥有干净且小的代码。
这似乎归档起来并不复杂,也许有人对如何处理日期有更好的想法。
在 Scala 中执行此操作最有效的方法是什么?
thanks
我能够通过简单的理解来做到这一点java.time.LocalDate
and java.time.Year
:
import java.time.{LocalDate, Year}
def allDaysForYear(year: String): List[(String, String, String)] = {
val daysInYear = if(Year.of(year.toInt).isLeap) 366 else 365
for {
day <- (1 to daysInYear).toList
localDate = LocalDate.ofYearDay(year.toInt, day)
month = localDate.getMonthValue
dayOfMonth = localDate.getDayOfMonth
} yield (year, month.toString, dayOfMonth.toString)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)