我创建了一个能够编写15.jan, 4.feb, 20.dec
的方法,以此类推,以创建表示当前年份日期的LocalDate对象。
object DateImplicits {
import DateImplicits._
import java.time.LocalDate
import java.time.temporal.ChronoUnit
implicit class RichDate(day:Int){
def jan():LocalDate = LocalDate.of(2016,1,day)
def jan(year:Int):LocalDate = LocalDate.of(year,1,day)
def feb():LocalDate = LocalDate.of(2016,2,day)....}
}
但是,我正在尝试编写一种方法,可以在日期中添加天/月/年。
换句话说,如果x是LocalDate,我应该可以添加日,月和年
以下方式:x + 10.days, x + 2.months, and x + 5.years
。
我知道我需要两个隐式类,但我不确定如何填充方法。有一个帖子提供了线索,但我仍然输了:
implicit class RichLocalDate(d:LocalDate) =???
implicit class RichInt(n:Int) = ???
我怎么能做到这一点?
答案 0 :(得分:0)
您已完成所有大部分工作,您只需要为implicit class
创建LocalDate
(与implicit class Int
相同),例如:
implicit class RichLocalDate(d:LocalDate) {
def +(d2: LocalDate) = ... //overloadding for +
}
答案 1 :(得分:0)
您也可以使用已提供此功能的https://github.com/reactivecodes/scala-time,而不是自己动手。