在scala中添加日期到日期

时间:2016-04-12 03:23:47

标签: scala

我创建了一个能够编写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) = ???

我怎么能做到这一点?

2 个答案:

答案 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,而不是自己动手。