haskell / 9 / libraries / time-1.12.2 / data-time-calendar.html

Data.Time.Calendar

Safe Haskell Safe
Language Haskell2010

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

Defined in Data.Time.Calendar.Days

Ix Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

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

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

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

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

rangeSize :: (Day, Day) -> Int Source

unsafeRangeSize :: (Day, Day) -> Int Source

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 Source

show :: Day -> String Source

showList :: [Day] -> ShowS Source

NFData Day Source
Instance details

Defined in Data.Time.Calendar.Days

Methods

rnf :: Day -> () Source

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

addDays :: Integer -> Day -> Day Source

diffDays :: Day -> Day -> Integer Source

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

Calendar Duration

data CalendarDiffDays Source

Constructors

Instances
Instances details
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 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

Monoid CalendarDiffDays Source

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Semigroup CalendarDiffDays Source

Additive

Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Show CalendarDiffDays Source
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

NFData CalendarDiffDays Source
Instance details

Defined in Data.Time.Calendar.CalendarDiffDays

Methods

rnf :: CalendarDiffDays -> () Source

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

calendarDay :: CalendarDiffDays Source

calendarWeek :: CalendarDiffDays Source

calendarMonth :: 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.

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 January :: MonthOfYear Source

pattern February :: MonthOfYear Source

pattern March :: MonthOfYear Source

pattern April :: MonthOfYear Source

pattern May :: MonthOfYear Source

pattern June :: MonthOfYear Source

pattern July :: MonthOfYear Source

pattern August :: MonthOfYear Source

pattern September :: MonthOfYear Source

pattern October :: MonthOfYear Source

pattern November :: 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.

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.

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. Same as diffGregorianDurationClip for positive durations.

isLeapYear :: Year -> Bool Source

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

Week

data DayOfWeek Source

Instances
Instances details
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 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 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

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

NFData DayOfWeek Source
Instance details

Defined in Data.Time.Calendar.Week

Methods

rnf :: DayOfWeek -> () Source

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

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

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