module Chronos.Calendar
(
months
, weekdays
, month
, dayOfWeek
, sunday
, monday
, tuesday
, wednesday
, thursday
, friday
, saturday
, january
, february
, march
, april
, may
, june
, july
, august
, september
, october
, november
, december
) where
import Chronos.Types
import qualified Data.Vector as Vector
month :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Month -> a
month a b c d e f g h i j k l =
let v = Vector.fromList [a,b,c,d,e,f,g,h,i,j,k,l]
in \(Month ix) -> Vector.unsafeIndex v (fromIntegral ix)
dayOfWeek :: a -> a -> a -> a -> a -> a -> a -> DayOfWeek -> a
dayOfWeek a b c d e f g =
let v = Vector.fromList [a,b,c,d,e,f,g]
in \(DayOfWeek ix) -> Vector.unsafeIndex v (fromIntegral ix)
months :: [Month]
months = map Month [0..11]
weekdays :: [DayOfWeek]
weekdays = map DayOfWeek [0..6]
january :: Month
january = Month 0
february :: Month
february = Month 1
march :: Month
march = Month 2
april :: Month
april = Month 3
may :: Month
may = Month 4
june :: Month
june = Month 5
july :: Month
july = Month 6
august :: Month
august = Month 7
september :: Month
september = Month 8
october :: Month
october = Month 9
november :: Month
november = Month 10
december :: Month
december = Month 11
sunday :: DayOfWeek
sunday = DayOfWeek 0
monday :: DayOfWeek
monday = DayOfWeek 1
tuesday :: DayOfWeek
tuesday = DayOfWeek 2
wednesday :: DayOfWeek
wednesday = DayOfWeek 3
thursday :: DayOfWeek
thursday = DayOfWeek 4
friday :: DayOfWeek
friday = DayOfWeek 5
saturday :: DayOfWeek
saturday = DayOfWeek 6