module Data.Time.Parsers.Tables ( weekdays
, months
, timeZones
, ausTimeZones
) where
import Data.ByteString.Char8 (ByteString, unpack)
import Data.Map hiding (map)
import Data.Time (TimeZone(..))
weekdays :: [ByteString]
weekdays = [ "Monday", "Mon"
, "Tuesday", "Tue", "Tues"
, "Wednesday", "Wed", "Weds"
, "Thursday", "Thu", "Thur", "Thurs"
, "Friday", "Fri"
, "Saturday", "Sat"
, "Sunday", "Sun"
]
months :: Map ByteString Integer
months = fromList [ ("january", 1), ("jan", 1)
, ("february", 2), ("feb", 2)
, ("march", 3), ("mar", 3)
, ("april", 4), ("apr", 4)
, ("may", 5)
, ("june", 6), ("jun", 6)
, ("july", 7), ("jul", 7)
, ("august", 8), ("aug", 8)
, ("september", 9), ("sep", 9), ("sept", 9)
, ("october", 10), ("oct", 10)
, ("november", 11), ("nov", 11)
, ("december", 12), ("dec", 12)
]
mkTimeZone :: (ByteString, Int) -> (ByteString, TimeZone)
mkTimeZone (name, minutes) = (name,) . TimeZone minutes False $ unpack name
timeZones :: Map ByteString TimeZone
timeZones = fromList . map mkTimeZone $
[ ("NZDT",780), ("IDLE",720), ("NZST",720), ("NZT",720)
, ("AESST",660), ("ACSST",630), ("CADT",630), ("SADT",630)
, ("AEST",600), ("EAST",600), ("GST",600), ("LIGT",600)
, ("SAST",570), ("CAST",570), ("AWSST",540), ("JST",540)
, ("KST",540), ("MHT",540), ("WDT",540), ("MT",510)
, ("AWST",480), ("CCT",480), ("WADT",480), ("WST",480)
, ("JT",450), ("ALMST",420), ("WAST",420), ("CXT",420)
, ("MMT",390), ("ALMT",360), ("MAWT",360), ("IOT",300)
, ("MVT",300), ("TFT",300), ("AFT",270), ("EAST",240)
, ("MUT",240), ("RET",240), ("SCT",240), ("IRT",180)
, ("IT",210), ("EAT",180), ("BT",180), ("EETDST",180)
, ("HMT",180), ("BDST",120), ("CEST",120), ("CETDST",120)
, ("EET",120), ("FWT",120), ("IST",120), ("MEST",120)
, ("METDST",120), ("SST",120), ("BST",60), ("CET",60)
, ("DNT",60), ("FST",60), ("MET",60), ("MEWT",60)
, ("MEZ",60), ("NOR",60), ("SET",60), ("SWT",60)
, ("WETDST",60), ("GMT",0), ("UT",0), ("UTC",0)
, ("Z",0), ("ZULU",0), ("WET",0), ("WAT",60)
, ("FNST",60), ("FNT",120), ("BRST",120), ("NDT",150)
, ("ADT",180), ("AWT",180), ("BRT",180), ("NFT",210)
, ("NST",210), ("AST",240), ("ACST",240), ("EDT",240)
, ("ACT",300), ("CDT",300), ("EST",300), ("CST",360)
, ("MDT",360), ("MST",420), ("PDT",420), ("AKDT",480)
, ("PST",480), ("YDT",480), ("AKST",540), ("HDT",540)
, ("YST",540), ("MART",570), ("AHST",600), ("HST",600)
, ("CAT",600), ("NT",660), ("IDLW",720)
]
ausTimeZones :: Map ByteString TimeZone
ausTimeZones = fromList . map mkTimeZone $
[("ACST",570), ("CST", 630), ("EST",600), ("SAT",570)]