aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/date.scala
blob: 476cd13694073452294b947c6ca7709d96bd2404 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package xyz.driver.core

import java.util.Calendar

object date {

  type Month = Int @@ Month.type
  private[core] def tagMonth(value: Int): Month = value.asInstanceOf[Month]

  object Month {
    val JANUARY   = tagMonth(Calendar.JANUARY)
    val FEBRUARY  = tagMonth(Calendar.FEBRUARY)
    val MARCH     = tagMonth(Calendar.MARCH)
    val APRIL     = tagMonth(Calendar.APRIL)
    val MAY       = tagMonth(Calendar.MAY)
    val JUNE      = tagMonth(Calendar.JUNE)
    val JULY      = tagMonth(Calendar.JULY)
    val AUGUST    = tagMonth(Calendar.AUGUST)
    val SEPTEMBER = tagMonth(Calendar.SEPTEMBER)
    val OCTOBER   = tagMonth(Calendar.OCTOBER)
    val DECEMBER  = tagMonth(Calendar.DECEMBER)
  }

  final case class Date(year: Int, month: Month, day: Int)

  private[core] def javaDateToDate(javaDate: java.util.Date): Date = {
    val cal = Calendar.getInstance()
    cal.setTime(javaDate)
    Date(
      cal.get(Calendar.YEAR),
      date.tagMonth(cal.get(Calendar.MONTH)),
      cal.get(Calendar.DAY_OF_MONTH))
  }


}