time-compat-1.9.8: Compatibility package for time
Safe HaskellTrustworthy
LanguageHaskell2010

Data.Time.Calendar.Compat

Synopsis

Days

newtype Day Source #

The Modified Julian Day is a standard count of days, with zero being the day 1858-11-17.

Instances

Instances details
NFData Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

rnf :: Day -> () Source #

Data Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

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

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

toConstr :: Day -> Constr Source #

dataTypeOf :: Day -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Enum Day 
Instance details

Defined in Data.Time.Calendar.Days

Generic Day Source # 
Instance details

Defined in Data.Time.Orphans

Associated Types

type Rep Day 
Instance details

Defined in Data.Time.Orphans

type Rep Day = D1 ('MetaData "Day" "Data.Time.Calendar.Days" "time-1.12.2-8bd5" 'True) (C1 ('MetaCons "ModifiedJulianDay" 'PrefixI 'True) (S1 ('MetaSel ('Just "toModifiedJulianDay") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))

Methods

from :: Day -> Rep Day x Source #

to :: Rep Day x -> Day Source #

Ix Day 
Instance details

Defined in Data.Time.Calendar.Days

Read Day 
Instance details

Defined in Data.Time.Format.Parse

Show Day 
Instance details

Defined in Data.Time.Calendar.Gregorian

Eq Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

(==) :: Day -> Day -> Bool Source #

(/=) :: Day -> Day -> Bool Source #

Ord Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

compare :: Day -> Day -> Ordering Source #

(<) :: Day -> Day -> Bool Source #

(<=) :: Day -> Day -> Bool Source #

(>) :: Day -> Day -> Bool Source #

(>=) :: Day -> Day -> Bool Source #

max :: Day -> Day -> Day Source #

min :: Day -> Day -> Day Source #

Hashable Day Source # 
Instance details

Defined in Data.Time.Orphans

Methods

hashWithSalt :: Int -> Day -> Int Source #

hash :: Day -> Int Source #

DayPeriod Day 
Instance details

Defined in Data.Time.Calendar.Days

FormatTime Day 
Instance details

Defined in Data.Time.Format.Format.Instances

ISO8601 Day

yyyy-mm-dd (ISO 8601:2004(E) sec. 4.1.2.2 extended format)

Instance details

Defined in Data.Time.Format.ISO8601

ParseTime Day 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift Day Source # 
Instance details

Defined in Data.Time.Orphans

Methods

lift :: Quote m => Day -> m Exp Source #

liftTyped :: forall (m :: Type -> Type). Quote m => Day -> Code m Day Source #

type Rep Day Source # 
Instance details

Defined in Data.Time.Orphans

type Rep Day = D1 ('MetaData "Day" "Data.Time.Calendar.Days" "time-1.12.2-8bd5" 'True) (C1 ('MetaCons "ModifiedJulianDay" 'PrefixI 'True) (S1 ('MetaSel ('Just "toModifiedJulianDay") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))

DayPeriod

class Ord p => DayPeriod p where Source #

The class of types which can be represented as a period of days.

Since: time-1.12.1

Methods

periodFirstDay :: p -> Day Source #

Returns the first Day in a period of days.

periodLastDay :: p -> Day Source #

Returns the last Day in a period of days.

dayPeriod :: Day -> p Source #

Get the period this day is in.

periodAllDays :: DayPeriod p => p -> [Day] Source #

A list of all the days in this period.

Since: time-1.12.1

periodLength :: DayPeriod p => p -> Int Source #

The number of days in this period.

Since: time-1.12.1

periodFromDay :: DayPeriod p => Day -> (p, Int) Source #

Get the period this day is in, with the 1-based day number within the period.

periodFromDay (periodFirstDay p) = (p,1)

Since: time-1.12.1

periodToDay :: DayPeriod p => p -> Int -> Day Source #

Inverse of periodFromDay.

Since: time-1.12.1

periodToDayValid :: DayPeriod p => p -> Int -> Maybe Day Source #

Validating inverse of periodFromDay.

Since: time-1.12.1

CalendarDiffTime

data CalendarDiffDays Source #

Constructors

CalendarDiffDays 

Instances

Instances details
NFData CalendarDiffDays 
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Methods

rnf :: CalendarDiffDays -> () Source #

Monoid CalendarDiffDays

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Semigroup CalendarDiffDays

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Data CalendarDiffDays

Since: time-1.9.2

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Methods

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

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

toConstr :: CalendarDiffDays -> Constr Source #

dataTypeOf :: CalendarDiffDays -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Generic CalendarDiffDays Source # 
Instance details

Defined in Data.Time.Orphans

Associated Types

type Rep CalendarDiffDays 
Instance details

Defined in Data.Time.Orphans

type Rep CalendarDiffDays = D1 ('MetaData "CalendarDiffDays" "Data.Time.Calendar.CalendarDiffDays" "time-1.12.2-8bd5" 'False) (C1 ('MetaCons "CalendarDiffDays" 'PrefixI 'True) (S1 ('MetaSel ('Just "cdMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "cdDays") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))
Show CalendarDiffDays 
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Eq CalendarDiffDays 
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

FormatTime CalendarDiffDays 
Instance details

Defined in Data.Time.Format.Format.Instances

ISO8601 CalendarDiffDays

PyYmMdD (ISO 8601:2004(E) sec. 4.4.3.2)

Instance details

Defined in Data.Time.Format.ISO8601

ParseTime CalendarDiffDays 
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift CalendarDiffDays Source # 
Instance details

Defined in Data.Time.Orphans

type Rep CalendarDiffDays Source # 
Instance details

Defined in Data.Time.Orphans

type Rep CalendarDiffDays = D1 ('MetaData "CalendarDiffDays" "Data.Time.Calendar.CalendarDiffDays" "time-1.12.2-8bd5" 'False) (C1 ('MetaCons "CalendarDiffDays" 'PrefixI 'True) (S1 ('MetaSel ('Just "cdMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "cdDays") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))

scaleCalendarDiffDays :: Integer -> CalendarDiffDays -> CalendarDiffDays Source #

Scale by a factor. Note that scaleCalendarDiffDays (-1) will not perfectly invert a duration, due to variable month lengths.

Year, month and day

type Year = Integer Source #

Year of Common Era (when positive).

pattern CommonEra :: Integer -> Year Source #

Also known as Anno Domini.

pattern BeforeCommonEra :: Integer -> Year Source #

Also known as Before Christ. Note that Year 1 = 1 CE, and the previous Year 0 = 1 BCE. CommonEra and BeforeCommonEra form a COMPLETE set.

type MonthOfYear = Int Source #

Month of year, in range 1 (January) to 12 (December).

pattern May :: MonthOfYear Source #

pattern December :: MonthOfYear Source #

The twelve MonthOfYear patterns form a COMPLETE set.

type DayOfMonth = Int Source #

Day of month, in range 1 to 31.

Gregorian calendar

toGregorian :: Day -> (Year, MonthOfYear, DayOfMonth) Source #

Convert to proleptic Gregorian calendar.

fromGregorian :: Year -> MonthOfYear -> DayOfMonth -> Day Source #

Convert from proleptic Gregorian calendar. Invalid values will be clipped to the correct range, month first, then day.

fromGregorianValid :: Year -> MonthOfYear -> DayOfMonth -> Maybe Day Source #

Convert from proleptic Gregorian calendar. Invalid values will return Nothing

showGregorian :: Day -> String Source #

Show in ISO 8601 format (yyyy-mm-dd)

gregorianMonthLength :: Year -> MonthOfYear -> DayOfMonth Source #

The number of days in a given month according to the proleptic Gregorian calendar.

addGregorianMonthsClip :: Integer -> Day -> Day Source #

Add months, with days past the last day of the month clipped to the last day. For instance, 2005-01-30 + 1 month = 2005-02-28.

addGregorianMonthsRollOver :: Integer -> Day -> Day Source #

Add months, with days past the last day of the month rolling over to the next month. For instance, 2005-01-30 + 1 month = 2005-03-02.

addGregorianYearsClip :: Integer -> Day -> Day Source #

Add years, matching month and day, with Feb 29th clipped to Feb 28th if necessary. For instance, 2004-02-29 + 2 years = 2006-02-28.

addGregorianYearsRollOver :: Integer -> Day -> Day Source #

Add years, matching month and day, with Feb 29th rolled over to Mar 1st if necessary. For instance, 2004-02-29 + 2 years = 2006-03-01.

addGregorianDurationClip :: CalendarDiffDays -> Day -> Day Source #

Add months (clipped to last day), then add days

addGregorianDurationRollOver :: CalendarDiffDays -> Day -> Day Source #

Add months (rolling over to next month), then add days

diffGregorianDurationClip :: Day -> Day -> CalendarDiffDays Source #

Calendrical difference, with as many whole months as possible

diffGregorianDurationRollOver :: Day -> Day -> CalendarDiffDays Source #

Calendrical difference, with as many whole months as possible.

isLeapYear :: Year -> Bool Source #

Is this year a leap year according to the proleptic Gregorian calendar?

Week

data DayOfWeek Source #

Instances

Instances details
NFData DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Methods

rnf :: DayOfWeek -> () Source #

Data DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Methods

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

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

toConstr :: DayOfWeek -> Constr Source #

dataTypeOf :: DayOfWeek -> DataType Source #

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

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

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

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

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

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

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

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

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

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

Enum DayOfWeek

"Circular", so for example [Tuesday ..] gives an endless sequence. Also: fromEnum gives [1 .. 7] for [Monday .. Sunday], and toEnum performs mod 7 to give a cycle of days.

Instance details

Defined in Data.Time.Calendar.Week

Ix DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Read DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Show DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Eq DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Ord DayOfWeek 
Instance details

Defined in Data.Time.Calendar.Week

Hashable DayOfWeek Source # 
Instance details

Defined in Data.Time.Orphans

FormatTime DayOfWeek 
Instance details

Defined in Data.Time.Format.Format.Instances

Lift DayOfWeek Source # 
Instance details

Defined in Data.Time.Orphans

Methods

lift :: Quote m => DayOfWeek -> m Exp Source #

liftTyped :: forall (m :: Type -> Type). Quote m => DayOfWeek -> Code m DayOfWeek Source #

dayOfWeekDiff :: DayOfWeek -> DayOfWeek -> Int Source #

dayOfWeekDiff a b = a - b in range 0 to 6. The number of days from b to the next a.

firstDayOfWeekOnAfter :: DayOfWeek -> Day -> Day Source #

The first day-of-week on or after some day

weekAllDays :: DayOfWeek -> Day -> [Day] Source #

Returns a week containing the given Day where the first day is the DayOfWeek specified.

Examples:

>>> weekAllDays Sunday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 20 .. YearMonthDay 2022 2 26]
>>> weekAllDays Monday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 21 .. YearMonthDay 2022 2 27]
>>> weekAllDays Tuesday (YearMonthDay 2022 02 21)
[YearMonthDay 2022 2 15 .. YearMonthDay 2022 2 21]

Since: time-1.12.2

weekFirstDay :: DayOfWeek -> Day -> Day Source #

Returns the first day of a week containing the given Day.

Examples:

>>> weekFirstDay Sunday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 20
>>> weekFirstDay Monday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 21
>>> weekFirstDay Tuesday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 15

Since: time-1.12.2

weekLastDay :: DayOfWeek -> Day -> Day Source #

Returns the last day of a week containing the given Day.

Examples:

>>> weekLastDay Sunday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 26
>>> weekLastDay Monday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 27
>>> weekLastDay Tuesday (YearMonthDay 2022 02 21)
YearMonthDay 2022 2 21

Since: time-1.12.2

Type aliases

pattern YearMonthDay :: Year -> MonthOfYear -> DayOfMonth -> Day Source #

Bidirectional abstract constructor for the proleptic Gregorian calendar. Invalid values will be clipped to the correct range, month first, then day.