diff options
author | Stewart Stewart <stewinsalot@gmail.com> | 2017-03-15 19:51:56 -0700 |
---|---|---|
committer | Stewart Stewart <stewinsalot@gmail.com> | 2017-03-15 19:57:43 -0700 |
commit | 6ece67cd776ca5da1aef6595929772a7f801f1ab (patch) | |
tree | f7c264e935e07386be4191cdb8e34692662bc68b /src/main/scala/xyz/driver/core/date.scala | |
parent | d0465333090701c5d27229a17f0402623098e113 (diff) | |
download | driver-core-6ece67cd776ca5da1aef6595929772a7f801f1ab.tar.gz driver-core-6ece67cd776ca5da1aef6595929772a7f801f1ab.tar.bz2 driver-core-6ece67cd776ca5da1aef6595929772a7f801f1ab.zip |
tag int as month via apply method
Diffstat (limited to 'src/main/scala/xyz/driver/core/date.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/date.scala | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index 37b9a09..b9bcacb 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -5,21 +5,24 @@ import java.util.Calendar object date { type Month = Int @@ Month.type - 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 NOVEMBER = tagMonth(Calendar.NOVEMBER) - val DECEMBER = tagMonth(Calendar.DECEMBER) + def apply(value: Int): Month = { + require(0 to 11 contains value, "Month is zero-indexed: 0 <= value <= 11") + value.asInstanceOf[Month] + } + val JANUARY = Month(Calendar.JANUARY) + val FEBRUARY = Month(Calendar.FEBRUARY) + val MARCH = Month(Calendar.MARCH) + val APRIL = Month(Calendar.APRIL) + val MAY = Month(Calendar.MAY) + val JUNE = Month(Calendar.JUNE) + val JULY = Month(Calendar.JULY) + val AUGUST = Month(Calendar.AUGUST) + val SEPTEMBER = Month(Calendar.SEPTEMBER) + val OCTOBER = Month(Calendar.OCTOBER) + val NOVEMBER = Month(Calendar.NOVEMBER) + val DECEMBER = Month(Calendar.DECEMBER) } final case class Date(year: Int, month: Month, day: Int) { @@ -40,7 +43,7 @@ object date { def fromString(dateString: String): Option[Date] = { util.Try(dateString.split("-").map(_.toInt)).toOption collect { case Array(year, month, day) if (1 to 12 contains month) && (1 to 31 contains day) => - Date(year, tagMonth(month - 1), day) + Date(year, Month(month - 1), day) } } } |