W3cubDocs

/Haskell 9

Data.Time.Calendar

Safe Haskell Safe
Language Haskell2010

addDays :: Integer -> Day -> Day Source

diffDays :: Day -> Day -> Integer Source

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

A list of all the 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

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

The number of days in this period.

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

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 Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

rnf :: Day -> () Source

Data Day Source
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

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

toConstr :: Day -> Constr

dataTypeOf :: Day -> DataType

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

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

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

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

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

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

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

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

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

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

Enum Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

succ :: Day -> Day

pred :: Day -> Day

toEnum :: Int -> Day

fromEnum :: Day -> Int

enumFrom :: Day -> [Day]

enumFromThen :: Day -> Day -> [Day]

enumFromTo :: Day -> Day -> [Day]

enumFromThenTo :: Day -> Day -> Day -> [Day]

Generic Day Source
Instance details

Defined in Data.Time.Calendar.Days

Associated Types

type Rep Day
Instance details

Defined in Data.Time.Calendar.Days

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

Methods

from :: Day -> Rep Day x

to :: Rep Day x -> Day

Ix Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

range :: (Day, Day) -> [Day]

index :: (Day, Day) -> Day -> Int

unsafeIndex :: (Day, Day) -> Day -> Int

inRange :: (Day, Day) -> Day -> Bool

rangeSize :: (Day, Day) -> Int

unsafeRangeSize :: (Day, Day) -> Int

Read Day Source
Instance details

Defined in Data.Time.Format.Parse

Show Day Source
Instance details

Defined in Data.Time.Calendar.Gregorian

Methods

showsPrec :: Int -> Day -> ShowS

show :: Day -> String

showList :: [Day] -> ShowS

Eq Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

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

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

Ord Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

compare :: Day -> Day -> Ordering

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

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

(>) :: Day -> Day -> Bool

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

max :: Day -> Day -> Day

min :: Day -> Day -> Day

DayPeriod Day Source
Instance details

Defined in Data.Time.Calendar.Days

FormatTime Day Source
Instance details

Defined in Data.Time.Format.Format.Instances

ISO8601 Day Source

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

Instance details

Defined in Data.Time.Format.ISO8601

ParseTime Day Source
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

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

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

type Rep Day Source
Instance details

Defined in Data.Time.Calendar.Days

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

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.

calendarDay :: CalendarDiffDays Source

calendarMonth :: CalendarDiffDays Source

calendarWeek :: CalendarDiffDays Source

calendarYear :: CalendarDiffDays Source

scaleCalendarDiffDays :: Integer -> CalendarDiffDays -> CalendarDiffDays Source

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

data CalendarDiffDays Source

Constructors

CalendarDiffDays
Instances
Instances details
NFData CalendarDiffDays Source
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Methods

rnf :: CalendarDiffDays -> () Source

Monoid CalendarDiffDays Source

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Semigroup CalendarDiffDays Source

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Data CalendarDiffDays Source

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

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

toConstr :: CalendarDiffDays -> Constr

dataTypeOf :: CalendarDiffDays -> DataType

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

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

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

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

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

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

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

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

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

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

Generic CalendarDiffDays Source
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Associated Types

type Rep CalendarDiffDays

Since: time-1.14

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

type Rep CalendarDiffDays = D1 ('MetaData "CalendarDiffDays" "Data.Time.Calendar.CalendarDiffDays" "time-1.14-40b8" 'False) (C1 ('MetaCons "CalendarDiffDays" 'PrefixI 'True) (S1 ('MetaSel ('Just "cdMonths") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: S1 ('MetaSel ('Just "cdDays") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))
Read CalendarDiffDays Source
Instance details

Defined in Data.Time.Format.ISO8601

Show CalendarDiffDays Source
Instance details

Defined in Data.Time.Format.ISO8601

Eq CalendarDiffDays Source
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

FormatTime CalendarDiffDays Source
Instance details

Defined in Data.Time.Format.Format.Instances

ISO8601 CalendarDiffDays Source

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

Instance details

Defined in Data.Time.Format.ISO8601

ParseTime CalendarDiffDays Source
Instance details

Defined in Data.Time.Format.Parse.Instances

Lift CalendarDiffDays Source

Since: time-1.14

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Methods

lift :: Quote m => CalendarDiffDays -> m Exp

liftTyped :: forall (m :: Type -> Type). Quote m => CalendarDiffDays -> Code m CalendarDiffDays

type Rep CalendarDiffDays Source

Since: time-1.14

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

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

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.

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

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.

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.

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

gregorianMonthLength :: Year -> MonthOfYear -> DayOfMonth Source

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

showGregorian :: Day -> String Source

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

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

Convert to proleptic Gregorian calendar.

isLeapYear :: Year -> Bool Source

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

pattern April :: MonthOfYear Source

pattern August :: MonthOfYear Source

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.

pattern CommonEra :: Integer -> Year Source

Also known as Anno Domini.

pattern December :: MonthOfYear Source

The twelve MonthOfYear patterns form a COMPLETE set.

pattern February :: MonthOfYear Source

pattern January :: MonthOfYear Source

pattern July :: MonthOfYear Source

pattern June :: MonthOfYear Source

pattern March :: MonthOfYear Source

pattern May :: MonthOfYear Source

pattern November :: MonthOfYear Source

pattern October :: MonthOfYear Source

pattern September :: MonthOfYear Source

type DayOfMonth = Int Source

Day of month, in range 1 to 31.

type MonthOfYear = Int Source

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

type Year = Integer Source

Year of Common Era (when positive).

dayOfWeek :: Day -> 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

data DayOfWeek Source

Instances
Instances details
NFData DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Methods

rnf :: DayOfWeek -> () Source

Data DayOfWeek Source
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

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

toConstr :: DayOfWeek -> Constr

dataTypeOf :: DayOfWeek -> DataType

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

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

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

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

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

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

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

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

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

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

Enum DayOfWeek Source

"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

Generic DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Associated Types

type Rep DayOfWeek
Instance details

Defined in Data.Time.Calendar.Week

type Rep DayOfWeek = D1 ('MetaData "DayOfWeek" "Data.Time.Calendar.Week" "time-1.14-40b8" 'False) ((C1 ('MetaCons "Monday" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Tuesday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Wednesday" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Thursday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Friday" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Saturday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Sunday" 'PrefixI 'False) (U1 :: Type -> Type))))

Methods

from :: DayOfWeek -> Rep DayOfWeek x

to :: Rep DayOfWeek x -> DayOfWeek

Ix DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Read DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Show DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Eq DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Methods

(==) :: DayOfWeek -> DayOfWeek -> Bool

(/=) :: DayOfWeek -> DayOfWeek -> Bool

Ord DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

FormatTime DayOfWeek Source
Instance details

Defined in Data.Time.Format.Format.Instances

Lift DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Methods

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

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

type Rep DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

type Rep DayOfWeek = D1 ('MetaData "DayOfWeek" "Data.Time.Calendar.Week" "time-1.14-40b8" 'False) ((C1 ('MetaCons "Monday" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Tuesday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Wednesday" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Thursday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Friday" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Saturday" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Sunday" 'PrefixI 'False) (U1 :: Type -> Type))))

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/time-1.14-40b8/Data-Time-Calendar.html