module Data.Time.Calendar.Types where
type Year = Integer
pattern CommonEra :: Integer -> Year
pattern CommonEra n <-
((\y -> if y > 0 then Just y else Nothing) -> Just n)
where
CommonEra n = n
pattern BeforeCommonEra :: Integer -> Year
pattern BeforeCommonEra n <-
((\y -> if y <= 0 then Just (1 y) else Nothing) -> Just n)
where
BeforeCommonEra n = 1 n
type MonthOfYear = Int
pattern January :: MonthOfYear
pattern January = 1
pattern February :: MonthOfYear
pattern February = 2
pattern March :: MonthOfYear
pattern March = 3
pattern April :: MonthOfYear
pattern April = 4
pattern May :: MonthOfYear
pattern May = 5
pattern June :: MonthOfYear
pattern June = 6
pattern July :: MonthOfYear
pattern July = 7
pattern August :: MonthOfYear
pattern August = 8
pattern September :: MonthOfYear
pattern September = 9
pattern October :: MonthOfYear
pattern October = 10
pattern November :: MonthOfYear
pattern November = 11
pattern December :: MonthOfYear
pattern December = 12
type DayOfMonth = Int
type DayOfQuarter = Int
type DayOfYear = Int
type WeekOfYear = Int