lila/modules/common/src/main/Day.scala

27 lines
684 B
Scala

package lila.common
import org.joda.time.{ DateTime, Days }
// number of days since lichess
case class Day(value: Int) extends AnyVal {
def toDate = Day.genesis.plusDays(value).withTimeAtStartOfDay
}
object Day {
val genesis = new DateTime(2010, 1, 1, 0, 0).withTimeAtStartOfDay
def today = Day(Days.daysBetween(genesis, DateTime.now.withTimeAtStartOfDay).getDays)
def daysAgo(days: Int) = Day(
Days.daysBetween(genesis, DateTime.now.minusDays(days).withTimeAtStartOfDay).getDays
)
def recent(nb: Int): List[Day] =
(0 until nb).toList.map { delta =>
Day(Days.daysBetween(genesis, DateTime.now.minusDays(delta).withTimeAtStartOfDay).getDays)
}
}