aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/date.scala
diff options
context:
space:
mode:
authorVlad Uspensky <v.uspenskiy@icloud.com>2017-03-16 11:36:26 -0700
committerGitHub <noreply@github.com>2017-03-16 11:36:26 -0700
commit22ecb961a02cafa594f4cf5133c9d3862c7cd750 (patch)
tree803d183de18d2b67672b03227d7d0df1bdd197f9 /src/main/scala/xyz/driver/core/date.scala
parent6ae573387e623912a164d3e35e2c79065434d978 (diff)
parentbe262d8b985470e24adc924ca1f4d2b83fca744c (diff)
downloaddriver-core-22ecb961a02cafa594f4cf5133c9d3862c7cd750.tar.gz
driver-core-22ecb961a02cafa594f4cf5133c9d3862c7cd750.tar.bz2
driver-core-22ecb961a02cafa594f4cf5133c9d3862c7cd750.zip
Merge pull request #25 from drivergroup/month-formatv0.10.29
Add month format and expose month constructor
Diffstat (limited to 'src/main/scala/xyz/driver/core/date.scala')
-rw-r--r--src/main/scala/xyz/driver/core/date.scala31
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 5a6f736..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
- 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 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)
}
}
}