hodatime
Copyright(C) 2017 Jason Johnson
LicenseBSD-style (see the file LICENSE)
MaintainerJason Johnson <jason.johnson.081@gmail.com>
Stabilityexperimental
PortabilityPOSIX, Windows
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.HodaTime.Calendar.Gregorian

Description

This is the module for CalendarDate and CalendarDateTime in the Gregorian calendar, the civil calendar used across most of the world today. The Gregorian calendar refines the Julian leap year rule: every fourth year is a leap year, except that a century year (one divisible by 100) is a leap year only when it is also divisible by 400. Those century exceptions keep the calendar closely aligned to the solar year and correct the slow drift of Julian (which gains roughly three days every four centuries). Unlike some libraries this calendar is not proleptic: because the Gregorian calendar first took effect on 15 October 1582 (the day after 4 October 1582 in the Julian calendar, when ten days were dropped) this implementation rejects any earlier date - use Julian for dates before the changeover. The Gregorian calendar anchors the absolute timeline that every other calendar is measured against, so a given instant's Gregorian date is the reference that the other calendars are offset from.

Synopsis

Constructors

calendarDate :: DayOfMonth -> Month Gregorian -> Year -> Maybe (CalendarDate Gregorian) Source #

Smart constructor for a Gregorian calendar date. Returns Nothing if the day is out of range for the given month and year, or if the date falls before the 15 October 1582 changeover.

fromNthDay :: DayNth -> DayOfWeek Gregorian -> Month Gregorian -> Year -> Maybe (CalendarDate Gregorian) Source #

Smart constructor for a Gregorian calendar date given as a day relative to a month (e.g. the third Monday of the month). Returns Nothing if the resulting date is invalid.

fromWeekDate :: WeekNumber -> DayOfWeek Gregorian -> Year -> Maybe (CalendarDate Gregorian) Source #

Smart constructor for a Gregorian calendar date given as a week date. Note that this method assumes weeks start on Sunday and the first week of the year is the one which has at least one day in the new year. For ISO compliant behavior use this constructor from the ISO module

Types

data family Month cal Source #

Instances

Instances details
Bounded (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Bounded (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Bounded (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

minBound :: Month (Hebrew n) #

maxBound :: Month (Hebrew n) #

Bounded (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Bounded (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Bounded (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Enum (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Enum (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

KnownNumbering n => Enum (Month (Hebrew n)) Source #

The Month Enum is the one place the numbering shows: it is calendar order rotated so counting begins at the numbering's start month (numberingStart).

Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

succ :: Month (Hebrew n) -> Month (Hebrew n) #

pred :: Month (Hebrew n) -> Month (Hebrew n) #

toEnum :: Int -> Month (Hebrew n) #

fromEnum :: Month (Hebrew n) -> Int #

enumFrom :: Month (Hebrew n) -> [Month (Hebrew n)] #

enumFromThen :: Month (Hebrew n) -> Month (Hebrew n) -> [Month (Hebrew n)] #

enumFromTo :: Month (Hebrew n) -> Month (Hebrew n) -> [Month (Hebrew n)] #

enumFromThenTo :: Month (Hebrew n) -> Month (Hebrew n) -> Month (Hebrew n) -> [Month (Hebrew n)] #

Enum (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Enum (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Enum (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Read (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Read (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Read (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Read (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Read (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Read (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Show (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Show (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Show (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

showsPrec :: Int -> Month (Hebrew n) -> ShowS #

show :: Month (Hebrew n) -> String #

showList :: [Month (Hebrew n)] -> ShowS #

Show (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

showsPrec :: Int -> Month (Islamic l) -> ShowS #

show :: Month (Islamic l) -> String #

showList :: [Month (Islamic l)] -> ShowS #

Show (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Show (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

NFData (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Methods

rnf :: Month Coptic -> () #

NFData (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Methods

rnf :: Month Gregorian -> () #

NFData (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

rnf :: Month (Hebrew n) -> () #

NFData (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

rnf :: Month (Islamic l) -> () #

NFData (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Methods

rnf :: Month Julian -> () #

NFData (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Methods

rnf :: Month Persian -> () #

Eq (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Eq (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Eq (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

(==) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

(/=) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

Eq (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

(==) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

(/=) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

Eq (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Eq (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Ord (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Ord (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Ord (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

compare :: Month (Hebrew n) -> Month (Hebrew n) -> Ordering #

(<) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

(<=) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

(>) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

(>=) :: Month (Hebrew n) -> Month (Hebrew n) -> Bool #

max :: Month (Hebrew n) -> Month (Hebrew n) -> Month (Hebrew n) #

min :: Month (Hebrew n) -> Month (Hebrew n) -> Month (Hebrew n) #

Ord (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

compare :: Month (Islamic l) -> Month (Islamic l) -> Ordering #

(<) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

(<=) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

(>) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

(>=) :: Month (Islamic l) -> Month (Islamic l) -> Bool #

max :: Month (Islamic l) -> Month (Islamic l) -> Month (Islamic l) #

min :: Month (Islamic l) -> Month (Islamic l) -> Month (Islamic l) #

Ord (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Ord (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Hashable (Month Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Hashable (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

KnownNumbering n => Hashable (Month (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

hashWithSalt :: Int -> Month (Hebrew n) -> Int #

hash :: Month (Hebrew n) -> Int #

Hashable (Month (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

hashWithSalt :: Int -> Month (Islamic l) -> Int #

hash :: Month (Islamic l) -> Int #

Hashable (Month Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Hashable (Month Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

data Month Coptic Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

data Month Gregorian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

data Month Julian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

data Month Persian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

data Month (Hebrew n) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

data Month (Islamic l) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

data family DayOfWeek cal Source #

Instances

Instances details
Bounded (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Bounded (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Bounded (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Bounded (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Bounded (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Bounded (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Enum (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Enum (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Enum (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Enum (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Enum (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Enum (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Read (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Read (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Read (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Read (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Read (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Read (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Show (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Show (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Show (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Show (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Show (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Show (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

NFData (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Methods

rnf :: DayOfWeek Coptic -> () #

NFData (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Methods

rnf :: DayOfWeek Gregorian -> () #

NFData (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

rnf :: DayOfWeek (Hebrew n) -> () #

NFData (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Methods

rnf :: DayOfWeek (Islamic l) -> () #

NFData (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Methods

rnf :: DayOfWeek Julian -> () #

NFData (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Methods

rnf :: DayOfWeek Persian -> () #

Eq (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Eq (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Eq (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

(==) :: DayOfWeek (Hebrew n) -> DayOfWeek (Hebrew n) -> Bool #

(/=) :: DayOfWeek (Hebrew n) -> DayOfWeek (Hebrew n) -> Bool #

Eq (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Eq (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Eq (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Ord (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Ord (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Ord (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Ord (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Ord (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Ord (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

Hashable (DayOfWeek Coptic) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

Hashable (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Hashable (DayOfWeek (Hebrew n)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

Methods

hashWithSalt :: Int -> DayOfWeek (Hebrew n) -> Int #

hash :: DayOfWeek (Hebrew n) -> Int #

Hashable (DayOfWeek (Islamic l)) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

Hashable (DayOfWeek Julian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

Hashable (DayOfWeek Persian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

data DayOfWeek Coptic Source # 
Instance details

Defined in Data.HodaTime.Calendar.Coptic

data DayOfWeek Gregorian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

data DayOfWeek Julian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Julian

data DayOfWeek Persian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Persian

data DayOfWeek (Hebrew n) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Hebrew

data DayOfWeek (Islamic l) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Islamic

data Gregorian Source #

Instances

Instances details
IsCalendar Gregorian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Associated Types

data Date Gregorian

data DayOfWeek Gregorian Source #

data Month Gregorian Source #

Bounded (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Bounded (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Enum (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Enum (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Read (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Read (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Show (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Show (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

NFData (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Methods

rnf :: DayOfWeek Gregorian -> () #

NFData (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Methods

rnf :: Month Gregorian -> () #

Eq (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Eq (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Ord (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Ord (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Hashable (DayOfWeek Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

Hashable (Month Gregorian) Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

data DayOfWeek Gregorian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal

data Month Gregorian Source # 
Instance details

Defined in Data.HodaTime.Calendar.Gregorian.Internal