[{"name":"Date","comment":"\n\n@docs Date, Month, Weekday\n\n\n## Constructors\n\n@docs fromCalendarDate, fromOrdinalDate, fromWeekDate\n\n\n## Formatting\n\n@docs toFormattedString\n\n\n## ISO 8601\n\n@docs fromIsoString, toIsoString\n\n\n## Arithmetic\n\n@docs Unit, add, diff\n\n\n## Rounding\n\n@docs Interval, ceiling, floor\n\n\n## Lists\n\n@docs range\n\n\n## Extractions\n\n@docs year, quarter, month, monthNumber, ordinalDay, day, weekYear, weekNumber, weekday, weekdayNumber\n\n\n## Records\n\nConvenience functions for converting dates to records.\n\n@docs toCalendarDate, toOrdinalDate, toWeekDate\n\n\n## Month and Weekday helpers\n\n@docs monthToNumber, numberToMonth, weekdayToNumber, numberToWeekday\n\n\n## Rata Die\n\nConvert a `Date` to and from a raw `Int` representing the date in\n[Rata Die](https://en.wikipedia.org/wiki/Rata_Die).\n\n@docs toRataDie, fromRataDie\n\n","unions":[{"name":"Date","comment":" Represents a date without a time or zone.\n","args":[],"cases":[]},{"name":"Interval","comment":" ","args":[],"cases":[["Year",[]],["Quarter",[]],["Month",[]],["Week",[]],["Monday",[]],["Tuesday",[]],["Wednesday",[]],["Thursday",[]],["Friday",[]],["Saturday",[]],["Sunday",[]],["Day",[]]]},{"name":"Month","comment":" ","args":[],"cases":[["Jan",[]],["Feb",[]],["Mar",[]],["Apr",[]],["May",[]],["Jun",[]],["Jul",[]],["Aug",[]],["Sep",[]],["Oct",[]],["Nov",[]],["Dec",[]]]},{"name":"Unit","comment":" ","args":[],"cases":[["Years",[]],["Months",[]],["Weeks",[]],["Days",[]]]},{"name":"Weekday","comment":" ","args":[],"cases":[["Mon",[]],["Tue",[]],["Wed",[]],["Thu",[]],["Fri",[]],["Sat",[]],["Sun",[]]]}],"aliases":[],"values":[{"name":"add","comment":" Move a date by some number of units.\n\n    fromCalendarDate 2018 Sep 26\n        |> add Weeks -2\n    -- fromCalendarDate 2018 Sep 12\n\nWhen adding `Years` or `Months`, day values are clamped to the end of the\nmonth if necessary.\n\n    fromCalendarDate 2000 Jan 31\n        |> add Months 1\n    -- fromCalendarDate 2000 Feb 29\n\n","type":"Date.Unit -> Basics.Int -> Date.Date -> Date.Date"},{"name":"ceiling","comment":" Round up a date to the beginning of the closest interval. The resulting\ndate will be greater than or equal to the one provided.\n\n    fromCalendarDate 2018 May 11\n        |> ceiling Tuesday\n    -- fromCalendarDate 2018 May 15\n\n","type":"Date.Interval -> Date.Date -> Date.Date"},{"name":"day","comment":" Extracts the day of the month.\n","type":"Date.Date -> Basics.Int"},{"name":"diff","comment":" Find the difference, as a number of some units, between two dates.\n\n    diff Months\n        (fromCalendarDate 2007 Mar 15)\n        (fromCalendarDate 2007 Sep 1)\n    -- 5\n\n","type":"Date.Unit -> Date.Date -> Date.Date -> Basics.Int"},{"name":"floor","comment":" Round down a date to the beginning of the closest interval. The resulting\ndate will be less than or equal to the one provided.\n\n    fromCalendarDate 2018 May 11\n        |> floor Tuesday\n    -- fromCalendarDate 2018 May 8\n\n","type":"Date.Interval -> Date.Date -> Date.Date"},{"name":"fromCalendarDate","comment":" Create a date from a year, month, and day of the month; out-of-range day\nvalues will be clamped.\n\n    fromCalendarDate 2018 Sep 26\n\n","type":"Basics.Int -> Date.Month -> Basics.Int -> Date.Date"},{"name":"fromIsoString","comment":" Attempt to create a date from a string in\n[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Calendar dates,\nweek dates, and ordinal dates are all supported in extended and basic\nformat.\n\n    fromIsoString \"2018-09-26\"\n    fromIsoString \"2018-W26-3\"\n    fromIsoString \"2018-314\"\n\nThe string must represent a valid date; unlike `fromCalendarDate` and\nfriends, any out-of-range values will fail to produce a date.\n\n    fromIsoString \"2018-02-29\"\n    -- Err \"Invalid calendar date\"\n\n","type":"String.String -> Result.Result String.String Date.Date"},{"name":"fromOrdinalDate","comment":" Create a date from a year and day of the year; out-of-range day values\nwill be clamped.\n\n    fromOrdinalDate 2018 314\n\n","type":"Basics.Int -> Basics.Int -> Date.Date"},{"name":"fromRataDie","comment":" ","type":"Basics.Int -> Date.Date"},{"name":"fromWeekDate","comment":" Create a date from a week-numbering year, week number, and weekday;\nout-of-range week values will be clamped.\n\n    fromWeekDate 2018 26 Wed\n\n","type":"Basics.Int -> Basics.Int -> Date.Weekday -> Date.Date"},{"name":"month","comment":" ","type":"Date.Date -> Date.Month"},{"name":"monthNumber","comment":" ","type":"Date.Date -> Basics.Int"},{"name":"monthToNumber","comment":" ","type":"Date.Month -> Basics.Int"},{"name":"numberToMonth","comment":" ","type":"Basics.Int -> Date.Month"},{"name":"numberToWeekday","comment":" ","type":"Basics.Int -> Date.Weekday"},{"name":"ordinalDay","comment":" Extracts the day of the year.\n","type":"Date.Date -> Basics.Int"},{"name":"quarter","comment":" ","type":"Date.Date -> Basics.Int"},{"name":"range","comment":" Create a list of dates, at rounded intervals, increasing by a step value,\nbetween two dates. The list will start on or after the first date, and end\nbefore the second date.\n\n    range Day 2\n        (fromCalendarDate 2018 May 8)\n        (fromCalendarDate 2018 May 14)\n\n    -- [ fromCalendarDate 2018 May 8\n    -- , fromCalendarDate 2018 May 10\n    -- , fromCalendarDate 2018 May 12\n    -- ]\n\n","type":"Date.Interval -> Basics.Int -> Date.Date -> Date.Date -> List.List Date.Date"},{"name":"toCalendarDate","comment":" ","type":"Date.Date -> { year : Basics.Int, month : Date.Month, day : Basics.Int }"},{"name":"toFormattedString","comment":" Convert a date to a string using a pattern as a template.\n\n    fromCalendarDate 2007 Mar 15\n        |> toFormattedString \"EEEE, MMMM d, y\"\n    -- \"Thursday, March 15, 2007\"\n\nEach alphabetic character in the pattern represents date or time information;\nthe number of times a character is repeated specifies the form of the name to\nuse (e.g. \"Tue\", \"Tuesday\") or the padding of numbers (e.g. \"1\", \"01\").\nFormatting characters are escaped within single-quotes; a single-quote is\nescaped as a sequence of two single-quotes, whether appearing inside or outside\nan escaped sequence.\n\nPatterns are based on Date Format Patterns in [Unicode Technical\nStandard #35](http://www.unicode.org/reports/tr35/tr35-43/tr35-dates.html#Date_Format_Patterns).\nOnly the following subset of formatting characters are available:\n\n    \"y\" -- year\n    \"Y\" -- week-numbering year\n    \"Q\" -- quarter\n    \"M\" -- month\n    \"w\" -- week number\n    \"d\" -- day\n    \"D\" -- ordinal day\n    \"E\" -- day of week\n    \"e\" -- weekday number / day of week\n\nThe non-standard pattern field \"ddd\" is available to indicate the day of the\nmonth with an ordinal suffix (e.g. \"1st\", \"15th\"), as the current standard does\nnot include such a field.\n\n    fromCalendarDate 2007 Mar 15\n        |> toFormattedString \"MMMM ddd, y\"\n    -- \"March 15th, 2007\"\n\n","type":"String.String -> Date.Date -> String.String"},{"name":"toIsoString","comment":" Convenience function for formatting a date in ISO 8601 extended format.\n\n    fromCalendarDate 2007 Mar 15\n        |> toIsoString\n    -- \"2007-03-15\"\n\n","type":"Date.Date -> String.String"},{"name":"toOrdinalDate","comment":" ","type":"Date.Date -> { year : Basics.Int, ordinalDay : Basics.Int }"},{"name":"toRataDie","comment":" ","type":"Date.Date -> Basics.Int"},{"name":"toWeekDate","comment":" ","type":"Date.Date -> { weekYear : Basics.Int, weekNumber : Basics.Int, weekday : Date.Weekday }"},{"name":"weekNumber","comment":" ","type":"Date.Date -> Basics.Int"},{"name":"weekYear","comment":" Extracts the week-numbering year; this is not always the same as the\ncalendar year.\n","type":"Date.Date -> Basics.Int"},{"name":"weekday","comment":" ","type":"Date.Date -> Date.Weekday"},{"name":"weekdayNumber","comment":" Numbers 1–7 represent Monday–Sunday.\n","type":"Date.Date -> Basics.Int"},{"name":"weekdayToNumber","comment":" ","type":"Date.Weekday -> Basics.Int"},{"name":"year","comment":" ","type":"Date.Date -> Basics.Int"}],"binops":[]},{"name":"Date.RataDie","comment":" [Rata Die](https://en.wikipedia.org/wiki/Rata_Die) is a system for\nassigning numbers to calendar days, using a base date of _1 January 0001_.\n\nThis module exposes the same functions as the `Date` module, but it uses raw\n`Int` values as date representations.\n\nThis may be useful if you need dates as comparables. Otherwise, the `Date`\nmodule offers an opaque type for better type-safety.\n\n@docs RataDie, Month, Weekday\n\n\n## Constructors\n\n@docs fromCalendarDate, fromOrdinalDate, fromWeekDate\n\n\n## Formatting\n\n@docs toFormattedString\n\n\n## ISO 8601\n\n@docs fromIsoString, toIsoString\n\n\n## Arithmetic\n\n@docs Unit, add, diff\n\n\n## Rounding\n\n@docs Interval, ceiling, floor\n\n\n## Lists\n\n@docs range\n\n\n## Extractions\n\n@docs year, quarter, month, monthNumber, ordinalDay, day, weekYear, weekNumber, weekday, weekdayNumber\n\n\n## Records\n\nConvenience functions for converting dates to records.\n\n@docs toCalendarDate, toOrdinalDate, toWeekDate\n\n\n## Month and Weekday helpers\n\n@docs monthToNumber, numberToMonth, weekdayToNumber, numberToWeekday\n\n","unions":[{"name":"Interval","comment":" ","args":[],"cases":[["Year",[]],["Quarter",[]],["Month",[]],["Week",[]],["Monday",[]],["Tuesday",[]],["Wednesday",[]],["Thursday",[]],["Friday",[]],["Saturday",[]],["Sunday",[]],["Day",[]]]},{"name":"Month","comment":" ","args":[],"cases":[["Jan",[]],["Feb",[]],["Mar",[]],["Apr",[]],["May",[]],["Jun",[]],["Jul",[]],["Aug",[]],["Sep",[]],["Oct",[]],["Nov",[]],["Dec",[]]]},{"name":"Unit","comment":" ","args":[],"cases":[["Years",[]],["Months",[]],["Weeks",[]],["Days",[]]]},{"name":"Weekday","comment":" ","args":[],"cases":[["Mon",[]],["Tue",[]],["Wed",[]],["Thu",[]],["Fri",[]],["Sat",[]],["Sun",[]]]}],"aliases":[{"name":"RataDie","comment":" ","args":[],"type":"Basics.Int"}],"values":[{"name":"add","comment":" Move a date by some number of units.\n\n    fromCalendarDate 2018 Sep 26\n        |> add Weeks -2\n    -- fromCalendarDate 2018 Sep 12\n\nWhen adding `Years` or `Months`, day values are clamped to the end of the\nmonth if necessary.\n\n    fromCalendarDate 2000 Jan 31\n        |> add Months 1\n    -- fromCalendarDate 2000 Feb 29\n\n","type":"Date.RataDie.Unit -> Basics.Int -> Date.RataDie.RataDie -> Date.RataDie.RataDie"},{"name":"ceiling","comment":" Round up a date to the beginning of the closest interval. The resulting\ndate will be greater than or equal to the one provided.\n\n    fromCalendarDate 2018 May 11\n        |> ceiling Tuesday\n    -- fromCalendarDate 2018 May 15\n\n","type":"Date.RataDie.Interval -> Date.RataDie.RataDie -> Date.RataDie.RataDie"},{"name":"day","comment":" Extracts the day of the month.\n","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"diff","comment":" Find the difference, as a number of some units, between two dates.\n\n    diff Months\n        (fromCalendarDate 2007 Mar 15)\n        (fromCalendarDate 2007 Sep 1)\n    -- 5\n\n","type":"Date.RataDie.Unit -> Date.RataDie.RataDie -> Date.RataDie.RataDie -> Basics.Int"},{"name":"floor","comment":" Round down a date to the beginning of the closest interval. The resulting\ndate will be less than or equal to the one provided.\n\n    fromCalendarDate 2018 May 11\n        |> floor Tuesday\n    -- fromCalendarDate 2018 May 8\n\n","type":"Date.RataDie.Interval -> Date.RataDie.RataDie -> Date.RataDie.RataDie"},{"name":"fromCalendarDate","comment":" Create a date from a year, month, and day of the month; out-of-range day\nvalues will be clamped.\n\n    fromCalendarDate 2018 Sep 26\n\n","type":"Basics.Int -> Date.RataDie.Month -> Basics.Int -> Date.RataDie.RataDie"},{"name":"fromIsoString","comment":" Attempt to create a date from a string in\n[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. Calendar dates,\nweek dates, and ordinal dates are all supported in extended and basic\nformat.\n\n    fromIsoString \"2018-09-26\"\n    fromIsoString \"2018-W26-3\"\n    fromIsoString \"2018-314\"\n\nThe string must represent a valid date; unlike `fromCalendarDate` and\nfriends, any out-of-range values will fail to produce a date.\n\n    fromIsoString \"2018-02-29\"\n    -- Err \"Invalid calendar date\"\n\n","type":"String.String -> Result.Result String.String Date.RataDie.RataDie"},{"name":"fromOrdinalDate","comment":" Create a date from a year and day of the year; out-of-range day values\nwill be clamped.\n\n    fromOrdinalDate 2018 314\n\n","type":"Basics.Int -> Basics.Int -> Date.RataDie.RataDie"},{"name":"fromWeekDate","comment":" Create a date from a week-numbering year, week number, and weekday;\nout-of-range week values will be clamped.\n\n    fromWeekDate 2018 26 Wed\n\n","type":"Basics.Int -> Basics.Int -> Date.RataDie.Weekday -> Date.RataDie.RataDie"},{"name":"month","comment":" ","type":"Date.RataDie.RataDie -> Date.RataDie.Month"},{"name":"monthNumber","comment":" ","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"monthToNumber","comment":" ","type":"Date.RataDie.Month -> Basics.Int"},{"name":"numberToMonth","comment":" ","type":"Basics.Int -> Date.RataDie.Month"},{"name":"numberToWeekday","comment":" ","type":"Basics.Int -> Date.RataDie.Weekday"},{"name":"ordinalDay","comment":" Extracts the day of the year.\n","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"quarter","comment":" ","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"range","comment":" Create a list of dates, at rounded intervals, increasing by a step value,\nbetween two dates. The list will start on or after the first date, and end\nbefore the second date.\n\n    range Day 2\n        (fromCalendarDate 2018 May 8)\n        (fromCalendarDate 2018 May 14)\n\n    -- [ fromCalendarDate 2018 May 8\n    -- , fromCalendarDate 2018 May 10\n    -- , fromCalendarDate 2018 May 12\n    -- ]\n\n","type":"Date.RataDie.Interval -> Basics.Int -> Date.RataDie.RataDie -> Date.RataDie.RataDie -> List.List Date.RataDie.RataDie"},{"name":"toCalendarDate","comment":" ","type":"Date.RataDie.RataDie -> { year : Basics.Int, month : Date.RataDie.Month, day : Basics.Int }"},{"name":"toFormattedString","comment":" Convert a date to a string using a pattern as a template.\n\n    fromCalendarDate 2007 Mar 15\n        |> toFormattedString \"EEEE, MMMM d, y\"\n    -- \"Thursday, March 15, 2007\"\n\nEach alphabetic character in the pattern represents date or time information;\nthe number of times a character is repeated specifies the form of the name to\nuse (e.g. \"Tue\", \"Tuesday\") or the padding of numbers (e.g. \"1\", \"01\").\nFormatting characters are escaped within single-quotes; a single-quote is\nescaped as a sequence of two single-quotes, whether appearing inside or outside\nan escaped sequence.\n\nPatterns are based on Date Format Patterns in [Unicode Technical\nStandard #35](http://www.unicode.org/reports/tr35/tr35-43/tr35-dates.html#Date_Format_Patterns).\nOnly the following subset of formatting characters are available:\n\n    \"y\" -- year\n    \"Y\" -- week-numbering year\n    \"Q\" -- quarter\n    \"M\" -- month\n    \"w\" -- week number\n    \"d\" -- day\n    \"D\" -- ordinal day\n    \"E\" -- day of week\n    \"e\" -- weekday number / day of week\n\nThe non-standard pattern field \"ddd\" is available to indicate the day of the\nmonth with an ordinal suffix (e.g. \"1st\", \"15th\"), as the current standard does\nnot include such a field.\n\n    fromCalendarDate 2007 Mar 15\n        |> toFormattedString \"MMMM ddd, y\"\n    -- \"March 15th, 2007\"\n\n","type":"String.String -> Date.RataDie.RataDie -> String.String"},{"name":"toIsoString","comment":" Convenience function for formatting a date in ISO 8601 extended format.\n\n    fromCalendarDate 2007 Mar 15\n        |> toIsoString\n    -- \"2007-03-15\"\n\n","type":"Date.RataDie.RataDie -> String.String"},{"name":"toOrdinalDate","comment":" ","type":"Date.RataDie.RataDie -> { year : Basics.Int, ordinalDay : Basics.Int }"},{"name":"toWeekDate","comment":" ","type":"Date.RataDie.RataDie -> { weekYear : Basics.Int, weekNumber : Basics.Int, weekday : Date.RataDie.Weekday }"},{"name":"weekNumber","comment":" ","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"weekYear","comment":" Extracts the week-numbering year; this is not always the same as the\ncalendar year.\n","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"weekday","comment":" ","type":"Date.RataDie.RataDie -> Date.RataDie.Weekday"},{"name":"weekdayNumber","comment":" Numbers 1–7 represent Monday–Sunday.\n","type":"Date.RataDie.RataDie -> Basics.Int"},{"name":"weekdayToNumber","comment":" ","type":"Date.RataDie.Weekday -> Basics.Int"},{"name":"year","comment":" ","type":"Date.RataDie.RataDie -> Basics.Int"}],"binops":[]}]