fuzzy-dates-0.1.0.1: Libary for parsing dates in strings in varied formats.

Safe HaskellNone
LanguageHaskell2010

Data.Dates.Parsing

Description

Parse strings that aren't so precise

Synopsis

Documentation

data Config Source #

Constructors

Config

Which day of the week to consider the start day

Fields

data DateTime :: * #

Date and Time

Constructors

DateTime 

Fields

Instances

Eq DateTime 
Data DateTime 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DateTime -> c DateTime #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DateTime #

toConstr :: DateTime -> Constr #

dataTypeOf :: DateTime -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c DateTime) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DateTime) #

gmapT :: (forall b. Data b => b -> b) -> DateTime -> DateTime #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DateTime -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DateTime -> r #

gmapQ :: (forall d. Data d => d -> u) -> DateTime -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DateTime -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DateTime -> m DateTime #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DateTime -> m DateTime #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DateTime -> m DateTime #

Ord DateTime 
Read DateTime 
Show DateTime 
NFData DateTime 

Methods

rnf :: DateTime -> () #

Timeable DateTime 
Time DateTime 

data DateInterval Source #

Constructors

Days Int 
Weeks Int 
Months Int 
Years Int 

Instances

Eq DateInterval Source # 
Data DateInterval Source # 

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DateInterval -> c DateInterval #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DateInterval #

toConstr :: DateInterval -> Constr #

dataTypeOf :: DateInterval -> DataType #

dataCast1 :: Typeable (* -> *) t => (forall d. Data d => c (t d)) -> Maybe (c DateInterval) #

dataCast2 :: Typeable (* -> * -> *) t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DateInterval) #

gmapT :: (forall b. Data b => b -> b) -> DateInterval -> DateInterval #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DateInterval -> r #

gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DateInterval -> r #

gmapQ :: (forall d. Data d => d -> u) -> DateInterval -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> DateInterval -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> DateInterval -> m DateInterval #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DateInterval -> m DateInterval #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DateInterval -> m DateInterval #

Show DateInterval Source # 

class Timeable t => Time t where #

Represent time types that can be created from other time types.

Every conversion happens throught ElapsedP or Elapsed types.

Minimal complete definition

timeFromElapsedP

Methods

timeFromElapsedP :: ElapsedP -> t #

convert from a number of elapsed seconds and nanoseconds to another time representation

timeFromElapsed :: Elapsed -> t #

convert from a number of elapsed seconds and nanoseconds to another time representation

defaults to timeFromElapsedP unless defined explicitely by an instance.

parseDate Source #

Arguments

:: Config 
-> String

String to parse

-> Either ParseError Date 

Parse date/time

parseDateTime Source #

Arguments

:: Config 
-> String

String to parse

-> Either ParseError DateTime 

Parse date/time

pAbsDate :: Stream s m Char => Int -> ParsecT s st m Date Source #

pDate :: Stream s m Char => Config -> ParsecT s st m Date Source #

Parsec parser for Date only.

pDateTime :: Stream s m Char => Config -> ParsecT s st m DateTime Source #

Parsec parser for DateTime.

weekdayToInterval :: Config -> WeekDay -> DateInterval Source #

Weekday as interval from the configure start of the week

dateWeekDay :: DateTime -> WeekDay Source #

Get weekday of given date.

addInterval :: DateTime -> DateInterval -> DateTime Source #

Add date interval to DateTime

negateInterval :: DateInterval -> DateInterval Source #

Negate DateInterval value: Days 3 -> Days (-3).

minusInterval :: DateTime -> DateInterval -> DateTime Source #

Subtract DateInterval from DateTime.

dateInFormat :: Stream s m Char => Int -> DateFormat -> ParsecT s st m Date Source #

extractDates :: String -> IO [Date] Source #

Same as extractDatesY, but will get the current year from the system, so you don't have to provide it.

extractDatesY :: Int -> String -> [Date] Source #

Extract dates from a string, with the first argument being the current year (used for things like "Jan 18").

>>> extractDatesY 2018 "The party will be on 6/9"
[Date 2018 June 9]

extract :: Stream s m Char => ParsecT s st m a -> ParsecT s st m [a] Source #